<?xml version="1.0" encoding="UTF-8" ?>
<DataIntegratorExport repositoryVersion="12.2.2.0000" productVersion="12.2.3.2">
<DIDatabaseDatastore name="SRCSTAGING_DS" typeId="3" >
<DIAttributes>
<DIAttribute name="DBLiveLoad" value="no"/>
<DIAttribute name="application_type" value="Custom"/>
<DIAttribute name="cdc_enabled" value="no"/>
<DIAttribute name="datastore_repotype" value="local"/>
<DIAttribute name="ds_configuration_enabled" value="yes"/>
<DIAttribute name="ds_configurations" hasNestedXMLTree ="true">

<DSConfigurations>
<DSConfiguration default="true" name="Default">
<case_sensitive>no</case_sensitive>
<database_type>Microsoft_SQL_Server</database_type>
<db_alias_name1>SRCSTAGING_ALIAS</db_alias_name1>
<db_alias_user1>dws</db_alias_user1>
<loader_xact_size>1000</loader_xact_size>
<locale_codepage>&lt;default&gt;</locale_codepage>
<locale_language>&lt;default&gt;</locale_language>
<locale_territory>&lt;default&gt;</locale_territory>
<mssql_windows_authentication>no</mssql_windows_authentication>
<password>;085A6DF93DA01ED1DEA3BB1DC1D656C0EF56E65913FB53605B75804428674DE2</password>
<sql_server_database>XsStaging</sql_server_database>
<sql_server_dataserver>localhost,1433</sql_server_dataserver>
<sql_server_version>Microsoft SQL Server 2005</sql_server_version>
<user>dws</user>
</DSConfiguration>
</DSConfigurations>

</DIAttribute>
<DIAttribute name="enable_data_transfer" value="yes"/>
<DIAttribute name="import_unknown_type" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="unknown_type_size" value="255"/>
</DIAttributes>
</DIDatabaseDatastore>
<DIDatabaseDatastore name="DW_ABC_DS" typeId="3" >
<DIAttributes>
<DIAttribute name="DBLiveLoad" value="no"/>
<DIAttribute name="application_type" value="Custom"/>
<DIAttribute name="cdc_enabled" value="no"/>
<DIAttribute name="datastore_repotype" value="local"/>
<DIAttribute name="ds_configuration_enabled" value="yes"/>
<DIAttribute name="ds_configurations" hasNestedXMLTree ="true">

<DSConfigurations>
<DSConfiguration default="true" name="Default">
<case_sensitive>no</case_sensitive>
<database_type>Microsoft_SQL_Server</database_type>
<db_alias_name1>DW_ABC_ALIAS</db_alias_name1>
<db_alias_user1>dwabc</db_alias_user1>
<loader_xact_size>1000</loader_xact_size>
<locale_codepage>&lt;default&gt;</locale_codepage>
<locale_language>&lt;default&gt;</locale_language>
<locale_territory>&lt;default&gt;</locale_territory>
<mssql_windows_authentication>no</mssql_windows_authentication>
<password>;89770408927C5ECAB76D9855E0DA5FE4F25B0E2949263E3397D5BD72B1A30930</password>
<sql_server_database>XsStaging</sql_server_database>
<sql_server_dataserver>localhost,1433</sql_server_dataserver>
<sql_server_version>Microsoft SQL Server 2005</sql_server_version>
<user>dwabc</user>
</DSConfiguration>
</DSConfigurations>

</DIAttribute>
<DIAttribute name="enable_data_transfer" value="yes"/>
<DIAttribute name="import_unknown_type" value="no"/>
<DIAttribute name="name" value="DW_ABC_DS"/>
<DIAttribute name="unknown_type_size" value="255"/>
</DIAttributes>
</DIDatabaseDatastore>
<DIDatabaseDatastore name="DW_METADATA_DS" typeId="3" >
<DIAttributes>
<DIAttribute name="DBLiveLoad" value="no"/>
<DIAttribute name="application_type" value="Custom"/>
<DIAttribute name="cdc_enabled" value="no"/>
<DIAttribute name="datastore_repotype" value="local"/>
<DIAttribute name="ds_configuration_enabled" value="yes"/>
<DIAttribute name="ds_configurations" hasNestedXMLTree ="true">

<DSConfigurations>
<DSConfiguration default="true" name="Default">
<case_sensitive>no</case_sensitive>
<database_type>Microsoft_SQL_Server</database_type>
<db_alias_name1>DW_METADATA_ALIAS</db_alias_name1>
<db_alias_user1>dwmetadata</db_alias_user1>
<loader_xact_size>1000</loader_xact_size>
<locale_codepage>&lt;default&gt;</locale_codepage>
<locale_language>&lt;default&gt;</locale_language>
<locale_territory>&lt;default&gt;</locale_territory>
<mssql_windows_authentication>no</mssql_windows_authentication>
<password>;085A6DF93DA01ED1DEA3BB1DC1D656C0EF56E65913FB53605B75804428674DE2</password>
<sql_server_database>XsStaging</sql_server_database>
<sql_server_dataserver>localhost,1433</sql_server_dataserver>
<sql_server_version>Microsoft SQL Server 2005</sql_server_version>
<user>dwmetadata</user>
</DSConfiguration>
</DSConfigurations>

</DIAttribute>
<DIAttribute name="enable_data_transfer" value="yes"/>
<DIAttribute name="import_unknown_type" value="no"/>
<DIAttribute name="name" value="DW_METADATA_DS"/>
<DIAttribute name="unknown_type_size" value="255"/>
</DIAttributes>
</DIDatabaseDatastore>
<DITable name="SA_JOB_ACTION_EXT" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="SERVERSTATUS" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="JOBACTIONSTARTTIME" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="JOBACTIONSTATUS" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="JOBACTIONID" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="JOBGROUPID" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="MD_PF_FLAG" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
<DIColumn name="MD_FLAG" datatype="VARCHAR" size="10" nullable="true" >
</DIColumn>
<DIColumn name="SERVERID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="JOBENDDATE" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="JOBID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="JOBACTIONENDTIME" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_CP_ID" />
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_JOB_ACTION_EXT" unique="true">
<DIIndexColumn name="MD_CP_ID" />
<DIIndexColumn name="MD_BUSINESS_KEY" />
</DITableIndex>
</DITable>
<DITable name="SA_JOB_ACTION_TSNP" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="JOBACTIONID" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="JOBACTIONENDTIME" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="JOBACTIONSTATUS" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="SERVERSTATUS" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="JOBID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="JOBACTIONSTARTTIME" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="JOBENDDATE" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="SERVERID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="JOBGROUPID" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_CP_ID" />
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_JOB_ACTION_TSNP" unique="true">
<DIIndexColumn name="MD_CP_ID" />
<DIIndexColumn name="MD_BUSINESS_KEY" />
</DITableIndex>
</DITable>
<DITable name="SA_JOB_ACTION_VALF" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="JOBID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="SERVERSTATUS" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" nullable="true" >
</DIColumn>
<DIColumn name="DI_ERRORACTION" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
<DIColumn name="SERVERID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="JOBACTIONSTARTTIME" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="JOBENDDATE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="JOBACTIONSTATUS" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="JOBACTIONID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="JOBACTIONENDTIME" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="JOBGROUPID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
</DITable>
<DITable name="SA_JOB_INFO_EXT" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="JOBTYPE" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="MD_PF_FLAG" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
<DIColumn name="JOBENDDATE" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="MD_FLAG" datatype="VARCHAR" size="10" nullable="true" >
</DIColumn>
<DIColumn name="JOBID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="JOBSTARTDATE" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="JOBSTATUS" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
<DIPrimaryKeyColumn name="MD_CP_ID" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_JOB_INFO_EXT" unique="true">
<DIIndexColumn name="MD_BUSINESS_KEY" />
<DIIndexColumn name="MD_CP_ID" />
</DITableIndex>
</DITable>
<DITable name="SA_JOB_INFO_TSNP" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="JOBSTATUS" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="JOBID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="JOBENDDATE" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="JOBTYPE" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="JOBSTARTDATE" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
<DIPrimaryKeyColumn name="MD_CP_ID" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_JOB_INFO_TSNP" unique="true">
<DIIndexColumn name="MD_BUSINESS_KEY" />
<DIIndexColumn name="MD_CP_ID" />
</DITableIndex>
</DITable>
<DITable name="SA_JOB_INFO_VALF" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="JOBSTARTDATE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="DI_ERRORACTION" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
<DIColumn name="JOBENDDATE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="JOBTYPE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" nullable="true" >
</DIColumn>
<DIColumn name="JOBID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="JOBSTATUS" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
</DITable>
<DITable name="SA_JOB_POLICY_ITEM_EXT" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="SERVERID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="MD_FLAG" datatype="VARCHAR" size="10" nullable="true" >
</DIColumn>
<DIColumn name="JOBENDDATE" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="MD_PF_FLAG" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
<DIColumn name="POLICYITEMID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="JOBID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="POLICYID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
<DIPrimaryKeyColumn name="MD_CP_ID" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_JOB_POLICY_ITEM_EXT" unique="true">
<DIIndexColumn name="MD_BUSINESS_KEY" />
<DIIndexColumn name="MD_CP_ID" />
</DITableIndex>
</DITable>
<DITable name="SA_JOB_POLICY_ITEM_TSNP" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="POLICYID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="JOBID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="POLICYITEMID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="SERVERID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="JOBENDDATE" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
<DIPrimaryKeyColumn name="MD_CP_ID" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_JOB_POLICY_ITEM_TSNP" unique="true">
<DIIndexColumn name="MD_BUSINESS_KEY" />
<DIIndexColumn name="MD_CP_ID" />
</DITableIndex>
</DITable>
<DITable name="SA_JOB_POLICY_ITEM_VALF" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="JOBENDDATE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="POLICYID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="POLICYITEMID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" nullable="true" >
</DIColumn>
<DIColumn name="SERVERID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="JOBID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="DI_ERRORACTION" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
</DITable>
<DITable name="SA_POLICY_EXT" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="DESCRIPTION" datatype="VARCHAR" size="1024" nullable="true" >
</DIColumn>
<DIColumn name="NAME" datatype="VARCHAR" size="1024" nullable="true" >
</DIColumn>
<DIColumn name="POLICYID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="MD_FLAG" datatype="VARCHAR" size="10" nullable="true" >
</DIColumn>
<DIColumn name="CATEGORY" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="MODIFIEDDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="MD_PF_FLAG" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="CREATEDDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
<DIPrimaryKeyColumn name="MD_CP_ID" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_POLICY_EXT" unique="true">
<DIIndexColumn name="MD_BUSINESS_KEY" />
<DIIndexColumn name="MD_CP_ID" />
</DITableIndex>
</DITable>
<DITable name="SA_POLICY_RESULT_EXT" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_FLAG" datatype="VARCHAR" size="10" nullable="true" >
</DIColumn>
<DIColumn name="TARGETSERVERID" datatype="VARCHAR" size="16" nullable="true" >
</DIColumn>
<DIColumn name="POLICYID" datatype="VARCHAR" size="16" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PF_FLAG" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
<DIColumn name="STARTDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIColumn name="TARGETCOUNT" datatype="DECIMAL" precision="16" scale="0" nullable="true" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="ENDDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIColumn name="AUDITRESULTID" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="RULESFAILEDCOUNT" datatype="DECIMAL" precision="16" scale="0" nullable="true" >
</DIColumn>
<DIColumn name="RULESRUNCOUNT" datatype="DECIMAL" precision="16" scale="0" nullable="true" >
</DIColumn>
<DIColumn name="RULESPASSEDCOUNT" datatype="DECIMAL" precision="16" scale="0" nullable="true" >
</DIColumn>
<DIColumn name="TARGETSTATUS" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_CP_ID" />
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_POLICY_RESULT_EXT" unique="true">
<DIIndexColumn name="MD_CP_ID" />
<DIIndexColumn name="MD_BUSINESS_KEY" />
</DITableIndex>
</DITable>
<DITable name="SA_POLICY_RESULT_TSNP" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="RULESRUNCOUNT" datatype="DECIMAL" precision="16" scale="0" nullable="true" >
</DIColumn>
<DIColumn name="STARTDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIColumn name="RULESFAILEDCOUNT" datatype="DECIMAL" precision="16" scale="0" nullable="true" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="TARGETSTATUS" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="TARGETSERVERID" datatype="VARCHAR" size="16" nullable="true" >
</DIColumn>
<DIColumn name="POLICYID" datatype="VARCHAR" size="16" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="RULESPASSEDCOUNT" datatype="DECIMAL" precision="16" scale="0" nullable="true" >
</DIColumn>
<DIColumn name="AUDITRESULTID" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="TARGETCOUNT" datatype="DECIMAL" precision="16" scale="0" nullable="true" >
</DIColumn>
<DIColumn name="ENDDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
<DIPrimaryKeyColumn name="MD_CP_ID" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_POLICY_RESULT_TSNP" unique="true">
<DIIndexColumn name="MD_BUSINESS_KEY" />
<DIIndexColumn name="MD_CP_ID" />
</DITableIndex>
</DITable>
<DITable name="SA_POLICY_RESULT_VALF" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="TARGETSERVERID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="RULESPASSEDCOUNT" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="RULESRUNCOUNT" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="POLICYID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="ENDDATE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="DI_ERRORACTION" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
<DIColumn name="TARGETSTATUS" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" nullable="true" >
</DIColumn>
<DIColumn name="RULESFAILEDCOUNT" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="AUDITRESULTID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="STARTDATE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="TARGETCOUNT" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
</DITable>
<DITable name="SA_POLICY_TSNP" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="POLICYID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="DESCRIPTION" datatype="VARCHAR" size="1024" nullable="true" >
</DIColumn>
<DIColumn name="CATEGORY" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="NAME" datatype="VARCHAR" size="1024" nullable="true" >
</DIColumn>
<DIColumn name="CREATEDDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIColumn name="MODIFIEDDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
<DIPrimaryKeyColumn name="MD_CP_ID" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_POLICY_TSNP" unique="true">
<DIIndexColumn name="MD_BUSINESS_KEY" />
<DIIndexColumn name="MD_CP_ID" />
</DITableIndex>
</DITable>
<DITable name="SA_POLICY_VALF" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="DESCRIPTION" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MODIFIEDDATE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="DI_ERRORACTION" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
<DIColumn name="CATEGORY" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="POLICYID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" nullable="true" >
</DIColumn>
<DIColumn name="NAME" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="CREATEDDATE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
</DITable>
<DITable name="SA_SERVER_EXT" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="SERIALNUMBER" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="MANUFACTURE" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="MD_FLAG" datatype="VARCHAR" size="10" nullable="true" >
</DIColumn>
<DIColumn name="NAME" datatype="VARCHAR" size="1024" nullable="true" >
</DIColumn>
<DIColumn name="OPSLIFECYCLE" datatype="VARCHAR" size="60" nullable="true" >
</DIColumn>
<DIColumn name="NETBIOSNAME" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="OSVERSION" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="DESCRIPTION" datatype="VARCHAR" size="1024" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="DISCOVEREDDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="MD_PF_FLAG" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
<DIColumn name="MODEL" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="MODIFIEDDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIColumn name="SERVERID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="MEMORYQUANTITY" datatype="DECIMAL" precision="16" scale="0" nullable="true" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_CP_ID" />
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_SERVER_EXT" unique="true">
<DIIndexColumn name="MD_CP_ID" />
<DIIndexColumn name="MD_BUSINESS_KEY" />
</DITableIndex>
</DITable>
<DITable name="SA_SERVER_TSNP" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MANUFACTURE" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="DESCRIPTION" datatype="VARCHAR" size="1024" nullable="true" >
</DIColumn>
<DIColumn name="OSVERSION" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="MODEL" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="SERIALNUMBER" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="false" >
</DIColumn>
<DIColumn name="DISCOVEREDDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIColumn name="MEMORYQUANTITY" datatype="DECIMAL" precision="16" scale="0" nullable="true" >
</DIColumn>
<DIColumn name="MODIFIEDDATE" datatype="DATETIME" nullable="true" >
</DIColumn>
<DIColumn name="SERVERID" datatype="VARCHAR" size="255" nullable="false" >
</DIColumn>
<DIColumn name="NETBIOSNAME" datatype="VARCHAR" size="255" nullable="true" >
</DIColumn>
<DIColumn name="OPSLIFECYCLE" datatype="VARCHAR" size="60" nullable="true" >
</DIColumn>
<DIColumn name="NAME" datatype="VARCHAR" size="1024" nullable="true" >
</DIColumn>
<DIPrimaryKey>
<DIPrimaryKeyColumn name="MD_CP_ID" />
<DIPrimaryKeyColumn name="MD_BUSINESS_KEY" />
</DIPrimaryKey>
<DITableIndex name="PK_SA_SERVER_TSNP" unique="true">
<DIIndexColumn name="MD_CP_ID" />
<DIIndexColumn name="MD_BUSINESS_KEY" />
</DITableIndex>
</DITable>
<DITable name="SA_SERVER_VALF" owner="dws" datastore="SRCSTAGING_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="SRCSTAGING_ALIAS" />
</DIProperties>
<DIColumn name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="DI_ERRORACTION" datatype="VARCHAR" size="1" nullable="true" >
</DIColumn>
<DIColumn name="MEMORYQUANTITY" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="SERIALNUMBER" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MODIFIEDDATE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MANUFACTURE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="OSVERSION" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="NAME" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MD_CP_ID" datatype="DECIMAL" precision="28" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" nullable="true" >
</DIColumn>
<DIColumn name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" nullable="true" >
</DIColumn>
<DIColumn name="OPSLIFECYCLE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="NETBIOSNAME" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="MODEL" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="DISCOVEREDDATE" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="DESCRIPTION" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
<DIColumn name="SERVERID" datatype="VARCHAR" size="4000" nullable="true" >
</DIColumn>
</DITable>
<DITable name="FILE_LOCATION_INFO" owner="dwmetadata" datastore="DW_METADATA_DS" database="XsStaging" description="" >
<DIProperties>
<DIAttribute name="Table_Type" value="TABLE" />
<DIAttribute name="Estimated_Row_Count" value="50000" />
<DIAttribute name="Loader_Is_Template_Table" value="no" />
<DIAttribute name="db_alias_name" value="DW_METADATA_ALIAS" />
</DIProperties>
<DIColumn name="ID" datatype="DECIMAL" precision="10" scale="0" nullable="false" >
</DIColumn>
<DIColumn name="SOURCE" datatype="VARCHAR" size="30" nullable="true" >
</DIColumn>
<DIColumn name="FILE_LOCATION" datatype="VARCHAR" size="200" nullable="true" >
</DIColumn>
</DITable>
<DIFlatFileDatastore name="SA_JOB_ACTION" typeId="3" >
<DIProperties>
<DIAttribute name="Description" value="This File Format is for the target and will be named dynamically in the Workflow in which it resides.  The Location of the Flat File is set Dynamically with the global variable $G_(SOURCE_SYSTEM)_FILE_LOCATION"/>
<DIAttribute name="SavedAfterCheckOut" value="YES"/>
<DIAttribute name="Date_created" value="Mon Oct 08 14:06:38 2012"/>
<DIAttribute name="Date_modified" value="Tue Aug 27 11:01:30 2013"/>
</DIProperties>
<DISchema>
<DIElement name="JOBACTIONENDTIME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement name="JOBACTIONID" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="JOBACTIONSTARTTIME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement name="JOBACTIONSTATUS" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement name="JOBGROUPID" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="SERVERSTATUS" datatype="VARCHAR" size="255" >
</DIElement>
</DISchema>
<DIAttributes>
<DIAttribute name="abap_file_format" value="no"/>
<DIAttribute name="blank_pad" value="leading"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="column_delimiter" value="!$NC$!"/>
<DIAttribute name="column_width" value="1"/>
<DIAttribute name="column_width1" value="100"/>
<DIAttribute name="column_width2" value="255"/>
<DIAttribute name="column_width3" value="100"/>
<DIAttribute name="column_width4" value="255"/>
<DIAttribute name="column_width5" value="100"/>
<DIAttribute name="column_width6" value="255"/>
<DIAttribute name="column_width7" value="255"/>
<DIAttribute name="column_width8" value="255"/>
<DIAttribute name="column_width9" value="255"/>
<DIAttribute name="date_format" value="yyyy.mm.dd"/>
<DIAttribute name="datetime_format" value="yyyy.mm.dd hh24:mi:ss"/>
<DIAttribute name="escape_character" value="^"/>
<DIAttribute name="file_format" value="ascii"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="file_name" value="$P_DYNAMIC_FILE_NAME_EXTD"/>
<DIAttribute name="file_type" value="delimited_file"/>
<DIAttribute name="locale_codepage" value="utf-16"/>
<DIAttribute name="locale_language" value="&lt;default&gt;"/>
<DIAttribute name="locale_territory" value="&lt;default&gt;"/>
<DIAttribute name="name" value="SA_JOB_ACTION"/>
<DIAttribute name="number_of_rows_to_skip" value="0"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$G_SA_FILELOCATION"/>
<DIAttribute name="row_delimiter" value="!$NL$!"/>
<DIAttribute name="row_delimiter_format" value="user"/>
<DIAttribute name="skip_row_header" value="yes"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="time_format" value="hh24:mi:ss"/>
<DIAttribute name="transfer_custom" value="no"/>
<DIAttribute name="use_root_dir" value="no"/>
<DIAttribute name="write_bom" value="yes"/>
<DIAttribute name="write_row_header" value="yes"/>
</DIAttributes>
</DIFlatFileDatastore>
<DIFlatFileDatastore name="SA_JOB_INFO" typeId="3" >
<DIProperties>
<DIAttribute name="Description" value="This File Format is for the target and will be named dynamically in the Workflow in which it resides.  The Location of the Flat File is set Dynamically with the global variable $G_(SOURCE_SYSTEM)_FILE_LOCATION"/>
<DIAttribute name="SavedAfterCheckOut" value="YES"/>
<DIAttribute name="Date_created" value="Thu Jan 19 13:53:55 2012"/>
<DIAttribute name="Date_modified" value="Tue Aug 27 11:01:35 2013"/>
</DIProperties>
<DISchema>
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="JOBSTARTDATE" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement name="JOBSTATUS" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement name="JOBTYPE" datatype="VARCHAR" size="100" >
</DIElement>
</DISchema>
<DIAttributes>
<DIAttribute name="abap_file_format" value="no"/>
<DIAttribute name="blank_pad" value="leading"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="column_delimiter" value="!$NC$!"/>
<DIAttribute name="column_width" value="1"/>
<DIAttribute name="column_width1" value="100"/>
<DIAttribute name="column_width2" value="255"/>
<DIAttribute name="column_width3" value="100"/>
<DIAttribute name="column_width4" value="100"/>
<DIAttribute name="column_width5" value="100"/>
<DIAttribute name="date_format" value="yyyy.mm.dd"/>
<DIAttribute name="datetime_format" value="yyyy.mm.dd hh24:mi:ss"/>
<DIAttribute name="escape_character" value="^"/>
<DIAttribute name="file_format" value="ascii"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="file_name" value="$P_DYNAMIC_FILE_NAME_EXTD"/>
<DIAttribute name="file_type" value="delimited_file"/>
<DIAttribute name="locale_codepage" value="utf-16"/>
<DIAttribute name="locale_language" value="&lt;default&gt;"/>
<DIAttribute name="locale_territory" value="&lt;default&gt;"/>
<DIAttribute name="name" value="SA_JOB_INFO"/>
<DIAttribute name="number_of_rows_to_skip" value="0"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$G_SA_FILELOCATION"/>
<DIAttribute name="row_delimiter" value="!$NL$!"/>
<DIAttribute name="row_delimiter_format" value="user"/>
<DIAttribute name="skip_row_header" value="yes"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="time_format" value="hh24:mi:ss"/>
<DIAttribute name="transfer_custom" value="no"/>
<DIAttribute name="use_root_dir" value="no"/>
<DIAttribute name="write_bom" value="yes"/>
<DIAttribute name="write_row_header" value="yes"/>
</DIAttributes>
</DIFlatFileDatastore>
<DIFlatFileDatastore name="SA_JOB_POLICY_ITEM" typeId="3" >
<DIProperties>
<DIAttribute name="Description" value="This File Format is for the target and will be named dynamically in the Workflow in which it resides.  The Location of the Flat File is set Dynamically with the global variable $G_(SOURCE_SYSTEM)_FILE_LOCATION"/>
<DIAttribute name="SavedAfterCheckOut" value="YES"/>
<DIAttribute name="Date_created" value="Thu Jan 19 13:53:55 2012"/>
<DIAttribute name="Date_modified" value="Tue Aug 27 11:01:41 2013"/>
</DIProperties>
<DISchema>
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="POLICYITEMID" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
</DIElement>
</DISchema>
<DIAttributes>
<DIAttribute name="abap_file_format" value="no"/>
<DIAttribute name="blank_pad" value="leading"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="column_delimiter" value="!$NC$!"/>
<DIAttribute name="column_width" value="1"/>
<DIAttribute name="column_width1" value="100"/>
<DIAttribute name="column_width2" value="255"/>
<DIAttribute name="column_width3" value="255"/>
<DIAttribute name="column_width4" value="255"/>
<DIAttribute name="column_width5" value="255"/>
<DIAttribute name="date_format" value="yyyy.mm.dd"/>
<DIAttribute name="datetime_format" value="yyyy.mm.dd hh24:mi:ss"/>
<DIAttribute name="escape_character" value="^"/>
<DIAttribute name="file_format" value="ascii"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="file_name" value="$P_DYNAMIC_FILE_NAME_EXTD"/>
<DIAttribute name="file_type" value="delimited_file"/>
<DIAttribute name="locale_codepage" value="utf-16"/>
<DIAttribute name="locale_language" value="&lt;default&gt;"/>
<DIAttribute name="locale_territory" value="&lt;default&gt;"/>
<DIAttribute name="name" value="SA_JOB_POLICY_ITEM"/>
<DIAttribute name="number_of_rows_to_skip" value="0"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$G_SA_FILELOCATION"/>
<DIAttribute name="row_delimiter" value="!$NL$!"/>
<DIAttribute name="row_delimiter_format" value="user"/>
<DIAttribute name="skip_row_header" value="yes"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="time_format" value="hh24:mi:ss"/>
<DIAttribute name="transfer_custom" value="no"/>
<DIAttribute name="use_root_dir" value="no"/>
<DIAttribute name="write_bom" value="yes"/>
<DIAttribute name="write_row_header" value="yes"/>
</DIAttributes>
</DIFlatFileDatastore>
<DIFlatFileDatastore name="SA_POLICY" typeId="3" >
<DIProperties>
<DIAttribute name="Description" value="This File Format is for the target and will be named dynamically in the Workflow in which it resides.  The Location of the Flat File is set Dynamically with the global variable $G_(SOURCE_SYSTEM)_FILE_LOCATION"/>
<DIAttribute name="SavedAfterCheckOut" value="YES"/>
<DIAttribute name="Date_created" value="Thu Jan 19 13:53:55 2012"/>
<DIAttribute name="Date_modified" value="Tue Aug 27 11:01:20 2013"/>
</DIProperties>
<DISchema>
<DIElement name="CATEGORY" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="CREATEDDATE" datatype="DATETIME" >
</DIElement>
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
</DIElement>
</DISchema>
<DIAttributes>
<DIAttribute name="abap_file_format" value="no"/>
<DIAttribute name="blank_pad" value="leading"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="column_delimiter" value="!$NC$!"/>
<DIAttribute name="column_width" value="1"/>
<DIAttribute name="column_width1" value="255"/>
<DIAttribute name="column_width2" value=""/>
<DIAttribute name="column_width3" value="1024"/>
<DIAttribute name="column_width4" value=""/>
<DIAttribute name="column_width5" value="1024"/>
<DIAttribute name="column_width6" value="255"/>
<DIAttribute name="date_format" value="yyyy.mm.dd"/>
<DIAttribute name="datetime_format" value="yyyy.mm.dd hh24:mi:ss"/>
<DIAttribute name="escape_character" value="^"/>
<DIAttribute name="file_format" value="ascii"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="file_name" value="$P_DYNAMIC_FILE_NAME_EXTD"/>
<DIAttribute name="file_type" value="delimited_file"/>
<DIAttribute name="locale_codepage" value="utf-16"/>
<DIAttribute name="locale_language" value="&lt;default&gt;"/>
<DIAttribute name="locale_territory" value="&lt;default&gt;"/>
<DIAttribute name="name" value="SA_POLICY"/>
<DIAttribute name="number_of_rows_to_skip" value="0"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$G_SA_FILELOCATION"/>
<DIAttribute name="row_delimiter" value="!$NL$!"/>
<DIAttribute name="row_delimiter_format" value="user"/>
<DIAttribute name="skip_row_header" value="yes"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="time_format" value="hh24:mi:ss"/>
<DIAttribute name="transfer_custom" value="no"/>
<DIAttribute name="use_root_dir" value="no"/>
<DIAttribute name="write_bom" value="yes"/>
<DIAttribute name="write_row_header" value="yes"/>
</DIAttributes>
</DIFlatFileDatastore>
<DIFlatFileDatastore name="SA_POLICY_EXTD" typeId="3" >
<DIProperties>
<DIAttribute name="Description" value="This File Format is for the EXTD targets and will be named dynamically in the Workflow in which it resides.  The Location of the Flat File is set Dynamically with the global variable $G_FILE_LOCATION"/>
<DIAttribute name="SavedAfterCheckOut" value="YES"/>
<DIAttribute name="Date_created" value="Wed Oct 24 11:52:26 2012"/>
<DIAttribute name="Date_modified" value="Tue Aug 27 11:01:19 2013"/>
</DIProperties>
<DISchema>
<DIElement name="CATEGORY" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
</DIElement>
</DISchema>
<DIAttributes>
<DIAttribute name="abap_file_format" value="no"/>
<DIAttribute name="blank_pad" value="leading"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="column_delimiter" value="!$NC$!"/>
<DIAttribute name="column_width" value="1"/>
<DIAttribute name="column_width1" value="255"/>
<DIAttribute name="column_width2" value="255"/>
<DIAttribute name="date_format" value="yyyy.mm.dd"/>
<DIAttribute name="datetime_format" value="yyyy.mm.dd hh24:mi:ss"/>
<DIAttribute name="escape_character" value="^"/>
<DIAttribute name="file_format" value="ascii"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="file_name" value="$P_DYNAMIC_FILE_NAME_EXTD"/>
<DIAttribute name="file_type" value="delimited_file"/>
<DIAttribute name="locale_codepage" value="utf-16"/>
<DIAttribute name="locale_language" value="&lt;default&gt;"/>
<DIAttribute name="locale_territory" value="&lt;default&gt;"/>
<DIAttribute name="name" value="SA_POLICY_EXTD"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$G_SA_FILELOCATION"/>
<DIAttribute name="row_delimiter" value="!$NL$!"/>
<DIAttribute name="row_delimiter_format" value="user"/>
<DIAttribute name="skip_row_header" value="yes"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="time_format" value="hh24:mi:ss"/>
<DIAttribute name="transfer_custom" value="no"/>
<DIAttribute name="use_root_dir" value="no"/>
<DIAttribute name="write_bom" value="yes"/>
<DIAttribute name="write_row_header" value="yes"/>
</DIAttributes>
</DIFlatFileDatastore>
<DIFlatFileDatastore name="SA_POLICY_RESULT" typeId="3" >
<DIProperties>
<DIAttribute name="Description" value="This File Format is for the target and will be named dynamically in the Workflow in which it resides.  The Location of the Flat File is set Dynamically with the global variable $G_(SOURCE_SYSTEM)_FILE_LOCATION"/>
<DIAttribute name="SavedAfterCheckOut" value="YES"/>
<DIAttribute name="Date_created" value="Thu Jan 19 13:53:55 2012"/>
<DIAttribute name="Date_modified" value="Tue Aug 27 11:01:50 2013"/>
</DIProperties>
<DISchema>
<DIElement name="AUDITRESULTID" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement name="ENDDATE" datatype="DATETIME" >
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="16" >
</DIElement>
<DIElement name="RULESFAILEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
</DIElement>
<DIElement name="RULESPASSEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
</DIElement>
<DIElement name="RULESRUNCOUNT" datatype="DECIMAL" precision="16" scale="0" >
</DIElement>
<DIElement name="STARTDATE" datatype="DATETIME" >
</DIElement>
<DIElement name="TARGETCOUNT" datatype="DECIMAL" precision="16" scale="0" >
</DIElement>
<DIElement name="TARGETSERVERID" datatype="VARCHAR" size="16" >
</DIElement>
<DIElement name="TARGETSTATUS" datatype="VARCHAR" size="100" >
</DIElement>
</DISchema>
<DIAttributes>
<DIAttribute name="abap_file_format" value="no"/>
<DIAttribute name="blank_pad" value="leading"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="column_delimiter" value="!$NC$!"/>
<DIAttribute name="column_width" value="1"/>
<DIAttribute name="column_width1" value="100"/>
<DIAttribute name="column_width10" value="100"/>
<DIAttribute name="column_width2" value=""/>
<DIAttribute name="column_width3" value="16"/>
<DIAttribute name="column_width4" value="16"/>
<DIAttribute name="column_width5" value="16"/>
<DIAttribute name="column_width6" value="16"/>
<DIAttribute name="column_width7" value=""/>
<DIAttribute name="column_width8" value="16"/>
<DIAttribute name="column_width9" value="16"/>
<DIAttribute name="date_format" value="yyyy.mm.dd"/>
<DIAttribute name="datetime_format" value="yyyy.mm.dd hh24:mi:ss"/>
<DIAttribute name="escape_character" value="^"/>
<DIAttribute name="file_format" value="ascii"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="file_name" value="$P_DYNAMIC_FILE_NAME_EXTD"/>
<DIAttribute name="file_type" value="delimited_file"/>
<DIAttribute name="locale_codepage" value="utf-16"/>
<DIAttribute name="locale_language" value="&lt;default&gt;"/>
<DIAttribute name="locale_territory" value="&lt;default&gt;"/>
<DIAttribute name="name" value="SA_POLICY_RESULT"/>
<DIAttribute name="number_of_rows_to_skip" value="0"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$G_SA_FILELOCATION"/>
<DIAttribute name="row_delimiter" value="!$NL$!"/>
<DIAttribute name="row_delimiter_format" value="user"/>
<DIAttribute name="skip_row_header" value="yes"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="time_format" value="hh24:mi:ss"/>
<DIAttribute name="transfer_custom" value="no"/>
<DIAttribute name="use_root_dir" value="no"/>
<DIAttribute name="write_bom" value="yes"/>
<DIAttribute name="write_row_header" value="yes"/>
</DIAttributes>
</DIFlatFileDatastore>
<DIFlatFileDatastore name="SA_SERVER" typeId="3" >
<DIProperties>
<DIAttribute name="Description" value="This File Format is for the target and will be named dynamically in the Workflow in which it resides.  The Location of the Flat File is set Dynamically with the global variable $G_(SOURCE_SYSTEM)_FILE_LOCATION"/>
<DIAttribute name="SavedAfterCheckOut" value="YES"/>
<DIAttribute name="Date_created" value="Thu Jan 19 13:53:55 2012"/>
<DIAttribute name="Date_modified" value="Tue Aug 27 11:01:11 2013"/>
</DIProperties>
<DISchema>
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
</DIElement>
<DIElement name="DISCOVEREDDATE" datatype="DATETIME" >
</DIElement>
<DIElement name="MANUFACTURE" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="MEMORYQUANTITY" datatype="DECIMAL" precision="16" scale="0" >
</DIElement>
<DIElement name="MODEL" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
</DIElement>
<DIElement name="NETBIOSNAME" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="OPSLIFECYCLE" datatype="VARCHAR" size="60" >
</DIElement>
<DIElement name="OSVERSION" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="SERIALNUMBER" datatype="VARCHAR" size="255" >
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
</DIElement>
</DISchema>
<DIAttributes>
<DIAttribute name="abap_file_format" value="no"/>
<DIAttribute name="blank_pad" value="leading"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="column_delimiter" value="!$NC$!"/>
<DIAttribute name="column_width" value="1"/>
<DIAttribute name="column_width1" value="1024"/>
<DIAttribute name="column_width10" value="255"/>
<DIAttribute name="column_width11" value="255"/>
<DIAttribute name="column_width12" value="255"/>
<DIAttribute name="column_width2" value=""/>
<DIAttribute name="column_width3" value="255"/>
<DIAttribute name="column_width4" value="16"/>
<DIAttribute name="column_width5" value="255"/>
<DIAttribute name="column_width6" value=""/>
<DIAttribute name="column_width7" value="1024"/>
<DIAttribute name="column_width8" value="255"/>
<DIAttribute name="column_width9" value="60"/>
<DIAttribute name="date_format" value="yyyy.mm.dd"/>
<DIAttribute name="datetime_format" value="yyyy.mm.dd hh24:mi:ss"/>
<DIAttribute name="escape_character" value="^"/>
<DIAttribute name="file_format" value="ascii"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="file_name" value="$P_DYNAMIC_FILE_NAME_EXTD"/>
<DIAttribute name="file_type" value="delimited_file"/>
<DIAttribute name="locale_codepage" value="utf-16"/>
<DIAttribute name="locale_language" value="&lt;default&gt;"/>
<DIAttribute name="locale_territory" value="&lt;default&gt;"/>
<DIAttribute name="name" value="SA_SERVER"/>
<DIAttribute name="number_of_rows_to_skip" value="0"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$G_SA_FILELOCATION"/>
<DIAttribute name="row_delimiter" value="!$NL$!"/>
<DIAttribute name="row_delimiter_format" value="user"/>
<DIAttribute name="skip_row_header" value="yes"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="time_format" value="hh24:mi:ss"/>
<DIAttribute name="transfer_custom" value="no"/>
<DIAttribute name="use_root_dir" value="no"/>
<DIAttribute name="write_bom" value="yes"/>
<DIAttribute name="write_row_header" value="yes"/>
</DIAttributes>
</DIFlatFileDatastore>
<DIFlatFileDatastore name="SA_SERVER_EXTD" typeId="3" >
<DIProperties>
<DIAttribute name="Description" value="This File Format is for the EXTD targets and will be named dynamically in the Workflow in which it resides.  The Location of the Flat File is set Dynamically with the global variable $G_FILE_LOCATION"/>
<DIAttribute name="SavedAfterCheckOut" value="YES"/>
<DIAttribute name="Date_created" value="Wed Oct 24 11:52:16 2012"/>
<DIAttribute name="Date_modified" value="Tue Aug 27 11:01:10 2013"/>
</DIProperties>
<DISchema>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
</DIElement>
</DISchema>
<DIAttributes>
<DIAttribute name="abap_file_format" value="no"/>
<DIAttribute name="blank_pad" value="leading"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="column_delimiter" value="!$NC$!"/>
<DIAttribute name="column_width" value="1"/>
<DIAttribute name="column_width1" value="255"/>
<DIAttribute name="date_format" value="yyyy.mm.dd"/>
<DIAttribute name="datetime_format" value="yyyy.mm.dd hh24:mi:ss"/>
<DIAttribute name="escape_character" value="^"/>
<DIAttribute name="file_format" value="ascii"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="file_name" value="$P_DYNAMIC_FILE_NAME_EXTD"/>
<DIAttribute name="file_type" value="delimited_file"/>
<DIAttribute name="locale_codepage" value="utf-16"/>
<DIAttribute name="locale_language" value="&lt;default&gt;"/>
<DIAttribute name="locale_territory" value="&lt;default&gt;"/>
<DIAttribute name="name" value="SA_SERVER_EXTD"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$G_SA_FILELOCATION"/>
<DIAttribute name="row_delimiter" value="!$NL$!"/>
<DIAttribute name="row_delimiter_format" value="user"/>
<DIAttribute name="skip_row_header" value="yes"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="time_format" value="hh24:mi:ss"/>
<DIAttribute name="transfer_custom" value="no"/>
<DIAttribute name="use_root_dir" value="no"/>
<DIAttribute name="write_bom" value="yes"/>
<DIAttribute name="write_row_header" value="yes"/>
</DIAttributes>
</DIFlatFileDatastore>
<DIScriptFunction name="ABC_ENDJB_FN" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="#UPDATE STEP_RUNTIME RECORD WITH SUCCESS STATUS AND END TIME&#xA;#GET JOB_ID&#xA;&#xA;$l_status = 'SUCCESS';&#xA;#$now = sysdate();&#xA;&#xA;$l_wf_failed_count = sql('DW_ABC_DS',' select count(status) from JOB_STREAM_STEP_DETAIL_RT&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND (status = \'ERROR\' or status = \'MAX_EXECUTION_TIME_EXCEEDED\')');&#xA;ETL_PRINT( '**     wf_failed_count = {$l_wf_failed_count}' );&#xA;&#xA;$l_wf_success_count = sql('DW_ABC_DS',' select count(status) from JOB_STREAM_STEP_DETAIL_RT&#xA;                     where MD_PROCESS_ID = {$p_process_id} AND status = \'SUCCESS\'');&#xA;ETL_PRINT( '**     wf_success_count = {$l_wf_success_count}' );&#xA;&#xA;$l_am_failed_count = sql('DW_ABC_DS',' select count(status) from AUDIT_METRIC&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND (status = \'ERROR\' or status = \'MAX_EXECUTION_TIME_EXCEEDED\')');&#xA;ETL_PRINT( '**     am_failed_count = {$l_am_failed_count}' );&#xA;&#xA;$l_am_warning_count = sql('DW_ABC_DS',' select count(status) from AUDIT_METRIC&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND status = \'WARNING\'');&#xA;ETL_PRINT( '**     am_warning_count = {$l_am_warning_count}' );&#xA;&#xA;$l_am_success_count = sql('DW_ABC_DS',' select count(status) from AUDIT_METRIC&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND status = \'SUCCESS\'');&#xA;ETL_PRINT( '**     am_success_count = {$l_am_success_count}' );&#xA;&#xA;$l_status_info = 'WFs statuses: success: ' || $l_wf_success_count || ', error: '  || $l_wf_failed_count ||' || Audit metrics: success: ' || $l_am_success_count || ', warning: ' || $l_am_warning_count || ', error: ' || $l_am_failed_count || '.';&#xA;&#xA;if ($l_wf_failed_count &gt; 0)&#xA;begin&#xA;&#x9;$l_status = 'ERROR';&#xA;&#x9;$l_reco_action =  'Drill to WF level to access the error message. ';&#xA;end&#x9;&#xA;else if ($l_am_failed_count &gt; 0)&#xA;begin&#xA;&#x9;$l_status = 'ERROR'; &#xA;&#x9;$l_reco_action = $l_reco_action || 'Refer to failed metrics. ';&#xA;end&#xA;else if ($l_am_warning_count &gt; 0)&#xA;begin&#xA;&#x9;$l_status = 'WARNING';&#xA;&#x9;$l_reco_action = $l_reco_action || 'Check WARNING metrics. ';&#xA;end&#xA;&#xA;&#xA;#sql('DW_ABC_DS','update JOB_STREAM_STEP_RT&#xA;#               set STATUS = {$l_status}, STATE = \'FINISHED\' , END_TIME = {sysdate()}, STATUS_INFO = {$l_status_info}, RECO_ACTION = {$l_reco_action}&#xA;#               where MD_PROCESS_ID = {$p_process_id}');&#xA;&#xA;sql('DW_ABC_DS','update JOB_STREAM_STEP_RT&#xA;               set STATUS = {$l_status}, STATE = \'FINISHED\' , END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127), STATUS_INFO = {$l_status_info}, RECO_ACTION = {$l_reco_action}&#xA;               where MD_PROCESS_ID = {$p_process_id}');&#xA;ETL_PRINT( '**' );&#xA;ETL_PRINT( '**' );&#xA;ETL_PRINT( '** The Job {job_name()} is ending' );&#xA;ETL_PRINT( '**   status: {$l_status}' );&#xA;ETL_PRINT( '**   explanation: {$l_status_info})' );&#xA;ETL_PRINT( '********************************' );&#xA;ETL_PRINT( '********************************' );&#xA;&#xA;return NULL;&#xA;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$p_process_id" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$l_wf_failed_count" datatype="INT" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_status" datatype="VARCHAR" size="10" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_wf_success_count" datatype="INT" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_status_info" datatype="VARCHAR" size="400" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_am_failed_count" datatype="INT" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_am_warning_count" datatype="INT" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_am_success_count" datatype="INT" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_reco_action" datatype="VARCHAR" size="4000" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="INT" />
<DISteps>
<DIAssignmentStep typeId="12" variable="$l_status" >
<DIExpression isString="true" expr="'SUCCESS'" >
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$l_wf_failed_count" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', ' select count(status) from JOB_STREAM_STEP_DETAIL_RT&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND (status = \'ERROR\' or status = \'MAX_EXECUTION_TIME_EXCEEDED\')')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value=" select count(status) from JOB_STREAM_STEP_DETAIL_RT&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND (status = 'ERROR' or status = 'MAX_EXECUTION_TIME_EXCEEDED')" datatype="VARCHAR" size="175" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('**     wf_failed_count = {$l_wf_failed_count}')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="**     wf_failed_count = {$l_wf_failed_count}" datatype="VARCHAR" size="45" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$l_wf_success_count" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', ' select count(status) from JOB_STREAM_STEP_DETAIL_RT&#xA;                     where MD_PROCESS_ID = {$p_process_id} AND status = \'SUCCESS\'')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value=" select count(status) from JOB_STREAM_STEP_DETAIL_RT&#xA;                     where MD_PROCESS_ID = {$p_process_id} AND status = 'SUCCESS'" datatype="VARCHAR" size="134" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('**     wf_success_count = {$l_wf_success_count}')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="**     wf_success_count = {$l_wf_success_count}" datatype="VARCHAR" size="47" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$l_am_failed_count" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', ' select count(status) from AUDIT_METRIC&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND (status = \'ERROR\' or status = \'MAX_EXECUTION_TIME_EXCEEDED\')')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value=" select count(status) from AUDIT_METRIC&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND (status = 'ERROR' or status = 'MAX_EXECUTION_TIME_EXCEEDED')" datatype="VARCHAR" size="162" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('**     am_failed_count = {$l_am_failed_count}')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="**     am_failed_count = {$l_am_failed_count}" datatype="VARCHAR" size="45" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$l_am_warning_count" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', ' select count(status) from AUDIT_METRIC&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND status = \'WARNING\'')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value=" select count(status) from AUDIT_METRIC&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND status = 'WARNING'" datatype="VARCHAR" size="120" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('**     am_warning_count = {$l_am_warning_count}')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="**     am_warning_count = {$l_am_warning_count}" datatype="VARCHAR" size="47" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$l_am_success_count" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', ' select count(status) from AUDIT_METRIC&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND status = \'SUCCESS\'')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value=" select count(status) from AUDIT_METRIC&#xA;                    where MD_PROCESS_ID = {$p_process_id} AND status = 'SUCCESS'" datatype="VARCHAR" size="120" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('**     am_success_count = {$l_am_success_count}')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="**     am_success_count = {$l_am_success_count}" datatype="VARCHAR" size="47" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$l_status_info" >
<DIExpression isString="true" expr="(((((((((('WFs statuses: success: ' || $l_wf_success_count) || ', error: ') || $l_wf_failed_count) || ' || Audit metrics: success: ') || $l_am_success_count) || ', warning: ') || $l_am_warning_count) || ', error: ') || $l_am_failed_count) || '.')" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="WFs statuses: success: " datatype="VARCHAR" size="23" />
<VARIABLE_REFERENCE name="$l_wf_success_count" />
</CONCAT>
<CONSTANT value=", error: " datatype="VARCHAR" size="9" />
</CONCAT>
<VARIABLE_REFERENCE name="$l_wf_failed_count" />
</CONCAT>
<CONSTANT value=" || Audit metrics: success: " datatype="VARCHAR" size="28" />
</CONCAT>
<VARIABLE_REFERENCE name="$l_am_success_count" />
</CONCAT>
<CONSTANT value=", warning: " datatype="VARCHAR" size="11" />
</CONCAT>
<VARIABLE_REFERENCE name="$l_am_warning_count" />
</CONCAT>
<CONSTANT value=", error: " datatype="VARCHAR" size="9" />
</CONCAT>
<VARIABLE_REFERENCE name="$l_am_failed_count" />
</CONCAT>
<CONSTANT value="." datatype="VARCHAR" size="1" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($l_wf_failed_count &gt; 0)" >
<LOGICAL_OP op="GT">
<VARIABLE_REFERENCE name="$l_wf_failed_count" />
<CONSTANT value="0" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIAssignmentStep typeId="12" variable="$l_status" >
<DIExpression isString="true" expr="'ERROR'" >
<CONSTANT value="ERROR" datatype="VARCHAR" size="5" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$l_reco_action" >
<DIExpression isString="true" expr="'Drill to WF level to access the error message. '" >
<CONSTANT value="Drill to WF level to access the error message. " datatype="VARCHAR" size="47" />
</DIExpression>
</DIAssignmentStep>
</DIIf>
<DIElse>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($l_am_failed_count &gt; 0)" >
<LOGICAL_OP op="GT">
<VARIABLE_REFERENCE name="$l_am_failed_count" />
<CONSTANT value="0" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIAssignmentStep typeId="12" variable="$l_status" >
<DIExpression isString="true" expr="'ERROR'" >
<CONSTANT value="ERROR" datatype="VARCHAR" size="5" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$l_reco_action" >
<DIExpression isString="true" expr="($l_reco_action || 'Refer to failed metrics. ')" >
<CONCAT>
<VARIABLE_REFERENCE name="$l_reco_action" />
<CONSTANT value="Refer to failed metrics. " datatype="VARCHAR" size="25" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
</DIIf>
<DIElse>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($l_am_warning_count &gt; 0)" >
<LOGICAL_OP op="GT">
<VARIABLE_REFERENCE name="$l_am_warning_count" />
<CONSTANT value="0" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIAssignmentStep typeId="12" variable="$l_status" >
<DIExpression isString="true" expr="'WARNING'" >
<CONSTANT value="WARNING" datatype="VARCHAR" size="7" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$l_reco_action" >
<DIExpression isString="true" expr="($l_reco_action || 'Check WARNING metrics. ')" >
<CONCAT>
<VARIABLE_REFERENCE name="$l_reco_action" />
<CONSTANT value="Check WARNING metrics. " datatype="VARCHAR" size="23" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
</DIIf>
</DIIfStep>
</DIElse>
</DIIfStep>
</DIElse>
</DIIfStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'update JOB_STREAM_STEP_RT&#xA;               set STATUS = {$l_status}, STATE = \'FINISHED\' , END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127), STATUS_INFO = {$l_status_info}, RECO_ACTION = {$l_reco_action}&#xA;               where MD_PROCESS_ID = {$p_process_id}')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="update JOB_STREAM_STEP_RT&#xA;               set STATUS = {$l_status}, STATE = 'FINISHED' , END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127), STATUS_INFO = {$l_status_info}, RECO_ACTION = {$l_reco_action}&#xA;               where MD_PROCESS_ID = {$p_process_id}" datatype="VARCHAR" size="272" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('**')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="**" datatype="VARCHAR" size="2" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('**')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="**" datatype="VARCHAR" size="2" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('** The Job {job_name()} is ending')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="** The Job {job_name()} is ending" datatype="VARCHAR" size="33" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('**   status: {$l_status}')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="**   status: {$l_status}" datatype="VARCHAR" size="24" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('**   explanation: {$l_status_info})')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="**   explanation: {$l_status_info})" datatype="VARCHAR" size="35" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="********************************" datatype="VARCHAR" size="32" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="********************************" datatype="VARCHAR" size="32" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr=" NULL " >
<CONSTANT_NULL /></DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="ABC_ENDWF_FN" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="&#xA;# LOOP THROUGH ALL VALUES IN INPUT PARAMETER TARGET_TABLE FIELD&#xA;# UPDATE EACH VALUE (IN DELIMITED STRING) AS SINGLE RECORD WITH ENDDATE&#xA;# CHECK THAT ABC_ENDWF_FN CANNOT BE CALLED BEFORE ABC_STARTWF_FN&#xA;&#xA;$l_previous_status = sql('DW_ABC_DS','select STATUS from JOB_STREAM_STEP_DETAIL_RT&#xA;                                      where MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} ');&#xA;&#xA;if ($l_previous_status is null)&#xA;#  sql('DW_ABC_DS','insert into JOB_STREAM_STEP_DETAIL_RT &#xA;#                   (MD_PROCESS_ID, DETAIL_NAME, STATUS, END_TIME)  &#xA;#                   VALUES ({$p_process_id}, {$p_detailname}, \'ERROR\', {sysdate()})');&#x9;&#xD;&#xA;  sql('DW_ABC_DS','insert into JOB_STREAM_STEP_DETAIL_RT &#xA;                   (MD_PROCESS_ID, DETAIL_NAME, STATUS, END_TIME)  &#xA;                   VALUES ({$p_process_id}, {$p_detailname}, \'ERROR\', convert(datetime,{sysdate()},111))');&#x9;&#xA;else&#xA;  begin&#xA;    if ($l_previous_status = 'RUNNING')&#xA;      sql('DW_ABC_DS','update JOB_STREAM_STEP_DETAIL_RT&#xA;                       set STATUS = \'SUCCESS\', END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127)&#xA;                       where MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} ');&#xA;&#x9;else&#xA;      sql('DW_ABC_DS','update JOB_STREAM_STEP_DETAIL_RT&#xA;                       set STATUS = \'ERROR\', END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127)&#xA;                       where MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} ');&#xA;&#x9;&#xA;  end&#xA;&#xA;ETL_PRINT( '        ** The workflow: [workflow_name()] is ending' );&#xA;ETL_PRINT( '        **   user: ' || system_user_name() );&#xA;ETL_PRINT( '        **   detail name: ' || $p_detailname );&#xA;ETL_PRINT( '        ********************************' );&#xA;ETL_PRINT( '        ********************************' );&#xA;&#xA;return NULL;&#xA;&#xA;&#xA;&#xA;&#xA;  "/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$p_detailname" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$p_process_id" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$l_previous_status" datatype="VARCHAR" size="12" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="INT" />
<DISteps>
<DIAssignmentStep typeId="12" variable="$l_previous_status" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'select STATUS from JOB_STREAM_STEP_DETAIL_RT&#xA;                                      where MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} ')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="select STATUS from JOB_STREAM_STEP_DETAIL_RT&#xA;                                      where MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} " datatype="VARCHAR" size="155" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($l_previous_status IS  NULL )" >
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$l_previous_status" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'insert into JOB_STREAM_STEP_DETAIL_RT &#xA;                   (MD_PROCESS_ID, DETAIL_NAME, STATUS, END_TIME)  &#xA;                   VALUES ({$p_process_id}, {$p_detailname}, \'ERROR\', convert(datetime,{sysdate()},111))')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="insert into JOB_STREAM_STEP_DETAIL_RT &#xA;                   (MD_PROCESS_ID, DETAIL_NAME, STATUS, END_TIME)  &#xA;                   VALUES ({$p_process_id}, {$p_detailname}, 'ERROR', convert(datetime,{sysdate()},111))" datatype="VARCHAR" size="211" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
<DIElse>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($l_previous_status = 'RUNNING')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$l_previous_status" />
<CONSTANT value="RUNNING" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'update JOB_STREAM_STEP_DETAIL_RT&#xA;                       set STATUS = \'SUCCESS\', END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127)&#xA;                       where MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} ')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="update JOB_STREAM_STEP_DETAIL_RT&#xA;                       set STATUS = 'SUCCESS', END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127)&#xA;                       where MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} " datatype="VARCHAR" size="243" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
<DIElse>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'update JOB_STREAM_STEP_DETAIL_RT&#xA;                       set STATUS = \'ERROR\', END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127)&#xA;                       where MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} ')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="update JOB_STREAM_STEP_DETAIL_RT&#xA;                       set STATUS = 'ERROR', END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127)&#xA;                       where MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} " datatype="VARCHAR" size="241" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIElse>
</DIIfStep>
</DIElse>
</DIIfStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ** The workflow: [workflow_name()] is ending')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ** The workflow: [workflow_name()] is ending" datatype="VARCHAR" size="52" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('        **   user: ' || system_user_name()))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="        **   user: " datatype="VARCHAR" size="19" />
<FUNCTION_CALL name="system_user_name"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('        **   detail name: ' || $p_detailname))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="        **   detail name: " datatype="VARCHAR" size="26" />
<VARIABLE_REFERENCE name="$p_detailname" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ********************************" datatype="VARCHAR" size="40" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ********************************" datatype="VARCHAR" size="40" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr=" NULL " >
<CONSTANT_NULL /></DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="ABC_FAILJB_FN" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="# IN EVENT THE JOB FAILED, UPDATE JOB RECORD WITH FAIL STATUS&#xA;&#xA;&#xA;if ($p_process_id is null)&#xA;  begin&#xA; &#x9; ETL_PRINT( 'ENTERED THE JOB CATCH BEFORE THE PROCESS_ID COULD BE SET (debug mode specific error)' );&#xA; &#x9; ETL_PRINT( 'AN ERROR RAISED BEFORE the execution of the job start script (this exception will not be recorded by ABC infrastructure)' );&#xA;  end&#xA;else&#xA;  begin&#xA;&#x9; $l_status_text = replace_substr( $p_status_info, '\'','\'\'');&#xA; &#x9; sql('DW_ABC_DS','update JOB_STREAM_STEP_RT&#xA;                 set STATE = \'FINISHED\', END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127), STATUS = \'ERROR\', STATUS_INFO = {$l_status_text}&#xA;                 where  MD_PROCESS_ID = {$p_process_id} ');&#xA;&#xA;  end&#xA;&#xA;&#xA;ETL_PRINT( '        ** The Job : [job_name()] FAILED' );&#xA;ETL_PRINT( '        **   user: ' || system_user_name() );&#xA;ETL_PRINT( '        **   status info: ' || $p_status_info );&#xA;ETL_PRINT( '        ********************************' );&#xA;ETL_PRINT( '        ********************************' );&#xA;&#xA;return NULL;&#xA;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
<DIAttribute name="Parallelizable" value="no"/>
<DIAttribute name="isScriptValidationFunction" value="no"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$p_process_id" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="IN" name="$p_status_info" datatype="VARCHAR" size="400" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$l_status_text" datatype="VARCHAR" size="400" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="INT" />
<DISteps>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($p_process_id IS  NULL )" >
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$p_process_id" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('ENTERED THE JOB CATCH BEFORE THE PROCESS_ID COULD BE SET (debug mode specific error)')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="ENTERED THE JOB CATCH BEFORE THE PROCESS_ID COULD BE SET (debug mode specific error)" datatype="VARCHAR" size="84" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('AN ERROR RAISED BEFORE the execution of the job start script (this exception will not be recorded by ABC infrastructure)')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="AN ERROR RAISED BEFORE the execution of the job start script (this exception will not be recorded by ABC infrastructure)" datatype="VARCHAR" size="120" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
<DIElse>
<DIAssignmentStep typeId="12" variable="$l_status_text" >
<DIExpression isString="true" expr="replace_substr($p_status_info, '\'', '\'\'')" >
<FUNCTION_CALL name="replace_substr"  type="DI" >
<VARIABLE_REFERENCE name="$p_status_info" />
<CONSTANT value="'" datatype="VARCHAR" size="1" />
<CONSTANT value="''" datatype="VARCHAR" size="2" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'update JOB_STREAM_STEP_RT&#xA;                 set STATE = \'FINISHED\', END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127), STATUS = \'ERROR\', STATUS_INFO = {$l_status_text}&#xA;                 where  MD_PROCESS_ID = {$p_process_id} ')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="update JOB_STREAM_STEP_RT&#xA;                 set STATE = 'FINISHED', END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127), STATUS = 'ERROR', STATUS_INFO = {$l_status_text}&#xA;                 where  MD_PROCESS_ID = {$p_process_id} " datatype="VARCHAR" size="241" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIElse>
</DIIfStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ** The Job : [job_name()] FAILED')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ** The Job : [job_name()] FAILED" datatype="VARCHAR" size="40" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('        **   user: ' || system_user_name()))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="        **   user: " datatype="VARCHAR" size="19" />
<FUNCTION_CALL name="system_user_name"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('        **   status info: ' || $p_status_info))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="        **   status info: " datatype="VARCHAR" size="26" />
<VARIABLE_REFERENCE name="$p_status_info" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ********************************" datatype="VARCHAR" size="40" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ********************************" datatype="VARCHAR" size="40" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr=" NULL " >
<CONSTANT_NULL /></DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="ABC_FAILWF_FN" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="# IN EVENT THE WORKFLOW FAILED, UPDATE WORKFLOW RECORD WITH FAIL STATUS&#xA;&#xA;$l_status_text = replace_substr( $p_status_info, '\'','\'\'');&#xA;&#xA;sql('DW_ABC_DS','update JOB_STREAM_STEP_DETAIL_RT&#xA;                 set STATUS = \'ERROR\', STATUS_INFO = {$l_status_text}, END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127)&#xA;                 where  MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} ');&#xA;&#xA;ETL_PRINT( '        ** The workflow: [workflow_name()] FAILED' );&#xA;ETL_PRINT( '        **   user: ' || system_user_name() );&#xA;ETL_PRINT( '        **   status info: ' || $p_status_info );&#xA;ETL_PRINT( '        **   detail name: ' || $p_detailname );&#xA;ETL_PRINT( '        ********************************' );&#xA;ETL_PRINT( '        ********************************' );&#xA;&#xA;return NULL;&#xA;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$p_detailname" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$p_process_id" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="IN" name="$p_status_info" datatype="VARCHAR" size="400" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$l_status_text" datatype="VARCHAR" size="400" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="INT" />
<DISteps>
<DIAssignmentStep typeId="12" variable="$l_status_text" >
<DIExpression isString="true" expr="replace_substr($p_status_info, '\'', '\'\'')" >
<FUNCTION_CALL name="replace_substr"  type="DI" >
<VARIABLE_REFERENCE name="$p_status_info" />
<CONSTANT value="'" datatype="VARCHAR" size="1" />
<CONSTANT value="''" datatype="VARCHAR" size="2" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'update JOB_STREAM_STEP_DETAIL_RT&#xA;                 set STATUS = \'ERROR\', STATUS_INFO = {$l_status_text}, END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127)&#xA;                 where  MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} ')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="update JOB_STREAM_STEP_DETAIL_RT&#xA;                 set STATUS = 'ERROR', STATUS_INFO = {$l_status_text}, END_TIME = convert(varchar(25),convert(datetime,getdate(),111),127)&#xA;                 where  MD_PROCESS_ID = {$p_process_id} AND DETAIL_NAME = {$p_detailname} " datatype="VARCHAR" size="262" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ** The workflow: [workflow_name()] FAILED')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ** The workflow: [workflow_name()] FAILED" datatype="VARCHAR" size="49" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('        **   user: ' || system_user_name()))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="        **   user: " datatype="VARCHAR" size="19" />
<FUNCTION_CALL name="system_user_name"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('        **   status info: ' || $p_status_info))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="        **   status info: " datatype="VARCHAR" size="26" />
<VARIABLE_REFERENCE name="$p_status_info" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('        **   detail name: ' || $p_detailname))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="        **   detail name: " datatype="VARCHAR" size="26" />
<VARIABLE_REFERENCE name="$p_detailname" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ********************************" datatype="VARCHAR" size="40" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ********************************" datatype="VARCHAR" size="40" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr=" NULL " >
<CONSTANT_NULL /></DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="ABC_STARTJB_FN" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="#$l_job_start_date = sysdate( );&#xD;&#xA;$l_job_start_date = sql('DW_ABC_DS','select getdate()');&#xD;&#xA;$l_job_start_date_vchar = sql('DW_ABC_DS','select convert(varchar(25),convert(datetime,{$l_job_start_date},111),127)');&#xD;&#xA;ETL_PRINT('l_job_start_date_vchar = '|| $l_job_start_date_vchar);&#xD;&#xA;#sql('DW_ABC_DS','select convert(datetime,GETDATE()-5,111)');&#xD;&#xA;#;&#xA;# the job may have been called from the DW scheduler as part of a job stream&#xA;# or it may be launched manually &#xA;# if the job is called as part of a job stream&#xA;#   then its row in DW_ABC_DS.STEP_RUNTIME identified by $G_STEP_RT_ID  has already &#xA;#   been created with a WAITING status&#xA;# else&#xA;#   the job has been launched out of a stream context, it will create its own entry &#xA;#   flagged as MANUAL in DW_ABC_DS.STEP_RUNTIME&#xA;       &#xA;if ($p_debug_mode is null or not $p_debug_mode = 1)&#xA;  begin&#xA;    if ($p_process_id is null)&#xA;      begin&#xA;&#x9;    ETL_PRINT( 'ERROR: $G_PROCESS_ID is not set. If you want to run manually the job, you must set $G_DEBUG_MODE=1' );&#xA;        raise_exception('$G_PROCESS_ID is not set. If you want to run manually the job, you must set $G_DEBUG_MODE=1');&#xA;      end&#xA;    # retrieve the batch id from the STEP_RUNTIME table&#xA;    $p_batch_id = sql('DW_ABC_DS',&#xA;      'SELECT MD_BATCH_ID FROM JOB_STREAM_STEP_RT where MD_PROCESS_ID = {$p_process_id}');&#xA;    if ($p_batch_id is null)&#xA;      begin&#xA;&#x9;    ETL_PRINT( 'ERROR: Process ' || $p_process_id || ' not found in STEP_RUNTIME table.' );&#xA;        raise_exception('process '||$p_process_id||' is not found in STEP_RUNTIME table.');&#xA;      end&#xA;  end&#xA;else&#xA;  begin&#xA;    if ($p_process_id is not null)&#xA;      begin&#xA;&#x9;    ETL_PRINT( 'ERROR: abC usage error detected : $G_DEBUG_MODE is set to ' || $p_debug_mode || ' but $G_PROCESS_ID is not null (set to '||$p_process_id||'). In debug mode Process ID will be allocated by the job and cannot be specified');&#xA;        raise_exception('ERROR: abC usage error detected : $G_DEBUG_MODE is set to ' || $p_debug_mode || ' but $G_PROCESS_ID is not null (set to '||$p_process_id||'). in debug mode Process ID will be allocated by the system and cannot be specified');&#xA;      end&#xA;    # create the job level row in DW_ABC_DS.STEP_RUNTIME note that only a basic row without start dates is created &#xA;  &#x9;# this will be done in code shared for scheduled and manual rows&#xA;&#xD;&#xA;#    sql('DW_ABC_DS','insert into JOB_STREAM_STEP_RT (JOB_NAME, START_TIME, STEP_OWNER, STATE) &#xA;#                     VALUES ({job_name()},{$l_job_start_date}, \'MANUAL\', \'STARTING\')');&#xA;&#xD;&#xA;    sql('DW_ABC_DS','insert into JOB_STREAM_STEP_RT (JOB_NAME, START_TIME, STEP_OWNER, STATE) &#xA;                     VALUES ({job_name()},{$l_job_start_date_vchar}, \'MANUAL\', \'STARTING\')');&#xA;  &#x9;# retrieve the row ID affected by the DB, this ID will be used for any future reference to the STEP_RUNTIME table&#xA;# &#x9;$p_process_id = sql('DW_ABC_DS','SELECT MD_PROCESS_ID from JOB_STREAM_STEP_RT where JOB_NAME = {job_name()} AND START_TIME = {$l_job_start_date} AND STEP_OWNER = \'MANUAL\' AND STATE =  \'STARTING\' ');&#xA;#&#x9;ETL_PRINT( 'After manual launch, the assigned Process ID is: ' || $p_process_id );&#xA;&#xD;&#xA; &#x9;$p_process_id = sql('DW_ABC_DS','SELECT MD_PROCESS_ID from JOB_STREAM_STEP_RT where JOB_NAME = {job_name()} AND START_TIME = {$l_job_start_date_vchar} AND STEP_OWNER = \'MANUAL\' AND STATE =  \'STARTING\' ');&#xA;&#x9;ETL_PRINT( 'After manual launch, the assigned Process ID is: ' || $p_process_id );&#xA;&#x9;# No new batch is created in debug mode, but set 0 to batch-id variable to have a not null value&#xA;&#x9;$p_batch_id = 0;&#xA;  end&#xA;&#xA;&#xA;ETL_PRINT ( 'Process ' || $p_process_id || ' retrieved $p_batch_id = {$p_batch_id}' );&#xA;$l_state = sql('DW_ABC_DS',&#xA;      'SELECT STATE FROM JOB_STREAM_STEP_RT where MD_PROCESS_ID = {$p_process_id}');&#xA;$l_job_name = sql('DW_ABC_DS',&#xA;      'SELECT JOB_NAME FROM JOB_STREAM_STEP_RT where MD_PROCESS_ID = {$p_process_id}');&#xA;&#xA;if ($l_state != 'STARTING' )&#xA;begin&#xA;    sql('DW_ABC_DS','update JOB_STREAM_STEP_RT set STATUS_INFO = \'Tried to run job, but it is not in a runnable state.\' &#xA;         where MD_PROCESS_ID = {$p_process_id}');&#xA;    raise_exception('ERROR: This job is not in a runnable state. This may come from Web Service timeout, the job will not execute and a new one will be trigered by ABC (if not already done)');&#xA;end&#xA;&#xA;if ($l_job_name != job_name() )&#xA;begin&#xA;   # sql('DW_ABC_DS','update JOB_STREAM_STEP_RT set STATUS_INFO = \'This job, {job_name()}, does not match the JOB_NAME of the step you are trying to run ($l_job_name).\' &#xA;   #      where MD_PROCESS_ID = {$p_process_id}');&#xA;    raise_exception('ERROR: This job, {job_name()}, does not match the JOB_NAME of the step you are trying to run (' || $l_job_name || ').');&#xA;end&#xA;&#xA;# now flag the job as running&#xD;&#xA;#sql('DW_ABC_DS','update JOB_STREAM_STEP_RT set STATE = \'RUNNING\',&#xA;#JOB_NAME = {job_name()}, START_TIME = convert(datetime,{$l_job_start_date},111)&#xA;#where MD_PROCESS_ID = {$p_process_id}');&#xA;sql('DW_ABC_DS','update JOB_STREAM_STEP_RT set STATE = \'RUNNING\',&#xA;JOB_NAME = {job_name()}, START_TIME = {$l_job_start_date_vchar}&#xA;where MD_PROCESS_ID = {$p_process_id}');&#xA;&#xA;set_env( 'ETL_DEBUG_MODE', $p_debug_mode );&#xA;set_env( 'ETL_BATCH_ID', $p_batch_id);&#xA;set_env( 'ETL_PROCESS_ID', $p_process_id );&#xA;if ( is_set_env( 'ETL_TRACE_LEVEL' ) != 1 )&#xA;begin&#xA;&#x9;set_env( 'ETL_TRACE_LEVEL', 'ALL' );&#xA;end&#xA;&#xA;ETL_PRINT( '********************************' );&#xA;ETL_PRINT( '********************************' );&#xA;ETL_PRINT( '** The Job {job_name()} is starting' || ifthenelse((get_env('ETL_DEBUG_MODE') = '1'), ' in Debug mode', '') || '.');&#xA;ETL_PRINT( '**' );&#xA;ETL_PRINT( '**' );&#xA;&#xA;return (5);&#xA;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
</DIProperties>
<DIParameters><DIElement paramType="IN_OUT" name="$p_process_id" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="IN" name="$p_debug_mode" datatype="INT" >
</DIElement>
<DIElement paramType="OUT" name="$p_batch_id" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$l_previous_process_id" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_sqltext" datatype="VARCHAR" size="80" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_job_start_date" datatype="DATETIME" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_state" datatype="VARCHAR" size="30" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_job_name" datatype="VARCHAR" size="60" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_job_start_date_vchar" datatype="VARCHAR" size="25" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="DATETIME" />
<DISteps>
<DIAssignmentStep typeId="12" variable="$l_job_start_date" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'select getdate()')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="select getdate()" datatype="VARCHAR" size="16" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$l_job_start_date_vchar" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'select convert(varchar(25),convert(datetime,{$l_job_start_date},111),127)')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="select convert(varchar(25),convert(datetime,{$l_job_start_date},111),127)" datatype="VARCHAR" size="73" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('l_job_start_date_vchar = ' || $l_job_start_date_vchar))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="l_job_start_date_vchar = " datatype="VARCHAR" size="25" />
<VARIABLE_REFERENCE name="$l_job_start_date_vchar" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(($p_debug_mode IS  NULL ) OR&#xA;   ( not ($p_debug_mode = 1)))" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$p_debug_mode" />
</LOGICAL_OP>
<LOGICAL_OP op="NOT">
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$p_debug_mode" />
<CONSTANT value="1" datatype="INT" />
</LOGICAL_OP>
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($p_process_id IS  NULL )" >
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$p_process_id" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('ERROR: $G_PROCESS_ID is not set. If you want to run manually the job, you must set $G_DEBUG_MODE=1')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="ERROR: $G_PROCESS_ID is not set. If you want to run manually the job, you must set $G_DEBUG_MODE=1" datatype="VARCHAR" size="98" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="raise_exception('$G_PROCESS_ID is not set. If you want to run manually the job, you must set $G_DEBUG_MODE=1')" >
<FUNCTION_CALL name="raise_exception"  type="DI" >
<CONSTANT value="$G_PROCESS_ID is not set. If you want to run manually the job, you must set $G_DEBUG_MODE=1" datatype="VARCHAR" size="91" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
</DIIfStep>
<DIAssignmentStep typeId="12" variable="$p_batch_id" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'SELECT MD_BATCH_ID FROM JOB_STREAM_STEP_RT where MD_PROCESS_ID = {$p_process_id}')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="SELECT MD_BATCH_ID FROM JOB_STREAM_STEP_RT where MD_PROCESS_ID = {$p_process_id}" datatype="VARCHAR" size="80" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($p_batch_id IS  NULL )" >
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$p_batch_id" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('ERROR: Process ' || $p_process_id) || ' not found in STEP_RUNTIME table.'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="ERROR: Process " datatype="VARCHAR" size="15" />
<VARIABLE_REFERENCE name="$p_process_id" />
</CONCAT>
<CONSTANT value=" not found in STEP_RUNTIME table." datatype="VARCHAR" size="33" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="raise_exception((('process ' || $p_process_id) || ' is not found in STEP_RUNTIME table.'))" >
<FUNCTION_CALL name="raise_exception"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="process " datatype="VARCHAR" size="8" />
<VARIABLE_REFERENCE name="$p_process_id" />
</CONCAT>
<CONSTANT value=" is not found in STEP_RUNTIME table." datatype="VARCHAR" size="36" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
</DIIfStep>
</DIIf>
<DIElse>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($p_process_id IS NOT  NULL )" >
<LOGICAL_OP op="IS NOT NULL">
<VARIABLE_REFERENCE name="$p_process_id" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((((('ERROR: abC usage error detected : $G_DEBUG_MODE is set to ' || $p_debug_mode) || ' but $G_PROCESS_ID is not null (set to ') || $p_process_id) || '). In debug mode Process ID will be allocated by the job and cannot be specified'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="ERROR: abC usage error detected : $G_DEBUG_MODE is set to " datatype="VARCHAR" size="58" />
<VARIABLE_REFERENCE name="$p_debug_mode" />
</CONCAT>
<CONSTANT value=" but $G_PROCESS_ID is not null (set to " datatype="VARCHAR" size="39" />
</CONCAT>
<VARIABLE_REFERENCE name="$p_process_id" />
</CONCAT>
<CONSTANT value="). In debug mode Process ID will be allocated by the job and cannot be specified" datatype="VARCHAR" size="80" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="raise_exception((((('ERROR: abC usage error detected : $G_DEBUG_MODE is set to ' || $p_debug_mode) || ' but $G_PROCESS_ID is not null (set to ') || $p_process_id) || '). in debug mode Process ID will be allocated by the system and cannot be specified'))" >
<FUNCTION_CALL name="raise_exception"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="ERROR: abC usage error detected : $G_DEBUG_MODE is set to " datatype="VARCHAR" size="58" />
<VARIABLE_REFERENCE name="$p_debug_mode" />
</CONCAT>
<CONSTANT value=" but $G_PROCESS_ID is not null (set to " datatype="VARCHAR" size="39" />
</CONCAT>
<VARIABLE_REFERENCE name="$p_process_id" />
</CONCAT>
<CONSTANT value="). in debug mode Process ID will be allocated by the system and cannot be specified" datatype="VARCHAR" size="83" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
</DIIfStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'insert into JOB_STREAM_STEP_RT (JOB_NAME, START_TIME, STEP_OWNER, STATE) &#xA;                     VALUES ({job_name()},{$l_job_start_date_vchar}, \'MANUAL\', \'STARTING\')')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="insert into JOB_STREAM_STEP_RT (JOB_NAME, START_TIME, STEP_OWNER, STATE) &#xA;                     VALUES ({job_name()},{$l_job_start_date_vchar}, 'MANUAL', 'STARTING')" datatype="VARCHAR" size="164" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$p_process_id" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'SELECT MD_PROCESS_ID from JOB_STREAM_STEP_RT where JOB_NAME = {job_name()} AND START_TIME = {$l_job_start_date_vchar} AND STEP_OWNER = \'MANUAL\' AND STATE =  \'STARTING\' ')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="SELECT MD_PROCESS_ID from JOB_STREAM_STEP_RT where JOB_NAME = {job_name()} AND START_TIME = {$l_job_start_date_vchar} AND STEP_OWNER = 'MANUAL' AND STATE =  'STARTING' " datatype="VARCHAR" size="168" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('After manual launch, the assigned Process ID is: ' || $p_process_id))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="After manual launch, the assigned Process ID is: " datatype="VARCHAR" size="49" />
<VARIABLE_REFERENCE name="$p_process_id" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$p_batch_id" >
<DIExpression isString="true" expr="0" >
<CONSTANT value="0" datatype="INT" />
</DIExpression>
</DIAssignmentStep>
</DIElse>
</DIIfStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('Process ' || $p_process_id) || ' retrieved $p_batch_id = {$p_batch_id}'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="Process " datatype="VARCHAR" size="8" />
<VARIABLE_REFERENCE name="$p_process_id" />
</CONCAT>
<CONSTANT value=" retrieved $p_batch_id = {$p_batch_id}" datatype="VARCHAR" size="38" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$l_state" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'SELECT STATE FROM JOB_STREAM_STEP_RT where MD_PROCESS_ID = {$p_process_id}')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="SELECT STATE FROM JOB_STREAM_STEP_RT where MD_PROCESS_ID = {$p_process_id}" datatype="VARCHAR" size="74" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$l_job_name" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'SELECT JOB_NAME FROM JOB_STREAM_STEP_RT where MD_PROCESS_ID = {$p_process_id}')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="SELECT JOB_NAME FROM JOB_STREAM_STEP_RT where MD_PROCESS_ID = {$p_process_id}" datatype="VARCHAR" size="77" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($l_state != 'STARTING')" >
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$l_state" />
<CONSTANT value="STARTING" datatype="VARCHAR" size="8" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'update JOB_STREAM_STEP_RT set STATUS_INFO = \'Tried to run job, but it is not in a runnable state.\' &#xA;         where MD_PROCESS_ID = {$p_process_id}')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="update JOB_STREAM_STEP_RT set STATUS_INFO = 'Tried to run job, but it is not in a runnable state.' &#xA;         where MD_PROCESS_ID = {$p_process_id}" datatype="VARCHAR" size="146" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="raise_exception('ERROR: This job is not in a runnable state. This may come from Web Service timeout, the job will not execute and a new one will be trigered by ABC (if not already done)')" >
<FUNCTION_CALL name="raise_exception"  type="DI" >
<CONSTANT value="ERROR: This job is not in a runnable state. This may come from Web Service timeout, the job will not execute and a new one will be trigered by ABC (if not already done)" datatype="VARCHAR" size="168" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
</DIIfStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($l_job_name != job_name())" >
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$l_job_name" />
<FUNCTION_CALL name="job_name"  type="DI" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="raise_exception((('ERROR: This job, {job_name()}, does not match the JOB_NAME of the step you are trying to run (' || $l_job_name) || ').'))" >
<FUNCTION_CALL name="raise_exception"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="ERROR: This job, {job_name()}, does not match the JOB_NAME of the step you are trying to run (" datatype="VARCHAR" size="94" />
<VARIABLE_REFERENCE name="$l_job_name" />
</CONCAT>
<CONSTANT value=")." datatype="VARCHAR" size="2" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
</DIIfStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'update JOB_STREAM_STEP_RT set STATE = \'RUNNING\',&#xA;JOB_NAME = {job_name()}, START_TIME = {$l_job_start_date_vchar}&#xA;where MD_PROCESS_ID = {$p_process_id}')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="update JOB_STREAM_STEP_RT set STATE = 'RUNNING',&#xA;JOB_NAME = {job_name()}, START_TIME = {$l_job_start_date_vchar}&#xA;where MD_PROCESS_ID = {$p_process_id}" datatype="VARCHAR" size="150" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="set_env('ETL_DEBUG_MODE', $p_debug_mode)" >
<FUNCTION_CALL name="set_env"  type="DI" >
<CONSTANT value="ETL_DEBUG_MODE" datatype="VARCHAR" size="14" />
<VARIABLE_REFERENCE name="$p_debug_mode" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="set_env('ETL_BATCH_ID', $p_batch_id)" >
<FUNCTION_CALL name="set_env"  type="DI" >
<CONSTANT value="ETL_BATCH_ID" datatype="VARCHAR" size="12" />
<VARIABLE_REFERENCE name="$p_batch_id" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="set_env('ETL_PROCESS_ID', $p_process_id)" >
<FUNCTION_CALL name="set_env"  type="DI" >
<CONSTANT value="ETL_PROCESS_ID" datatype="VARCHAR" size="14" />
<VARIABLE_REFERENCE name="$p_process_id" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(is_set_env('ETL_TRACE_LEVEL') != 1)" >
<LOGICAL_OP op="NE">
<FUNCTION_CALL name="is_set_env"  type="DI" >
<CONSTANT value="ETL_TRACE_LEVEL" datatype="VARCHAR" size="15" />
</FUNCTION_CALL>
<CONSTANT value="1" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="set_env('ETL_TRACE_LEVEL', 'ALL')" >
<FUNCTION_CALL name="set_env"  type="DI" >
<CONSTANT value="ETL_TRACE_LEVEL" datatype="VARCHAR" size="15" />
<CONSTANT value="ALL" datatype="VARCHAR" size="3" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
</DIIfStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="********************************" datatype="VARCHAR" size="32" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="********************************" datatype="VARCHAR" size="32" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('** The Job {job_name()} is starting' || ifthenelse((get_env('ETL_DEBUG_MODE') = '1'), ' in Debug mode', '')) || '.'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="** The Job {job_name()} is starting" datatype="VARCHAR" size="35" />
<FUNCTION_CALL name="ifthenelse"  type="DI" >
<LOGICAL_OP op="EQ">
<FUNCTION_CALL name="get_env"  type="DI" >
<CONSTANT value="ETL_DEBUG_MODE" datatype="VARCHAR" size="14" />
</FUNCTION_CALL>
<CONSTANT value="1" datatype="VARCHAR" size="1" />
</LOGICAL_OP>
<CONSTANT value=" in Debug mode" datatype="VARCHAR" size="14" />
<CONSTANT value="" datatype="VARCHAR" size="0" />
</FUNCTION_CALL>
</CONCAT>
<CONSTANT value="." datatype="VARCHAR" size="1" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('**')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="**" datatype="VARCHAR" size="2" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('**')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="**" datatype="VARCHAR" size="2" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr="5" >
<CONSTANT value="5" datatype="INT" />
</DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="ABC_STARTWF_FN" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="ETL_PRINT( '        ********************************' );&#xA;ETL_PRINT( '        ********************************' );&#xA;ETL_PRINT( '        ** The workflow [workflow_name()] is starting' );&#xA;ETL_PRINT( '        **   user: ' || system_user_name() );&#xA;ETL_PRINT( '        **   detail name: ' || $p_detailname );&#xA;&#xA;# DELETE EXISTING WORKFLOW RECORD&#xA;#sql('DW_ABC_DS','delete from RDS_DBA.WFEXECUTION_DW&#xA;#where APPNAME = {$p_appname} AND JOBNAME = {job_name()} AND WFNAME = {workflow_name()}&#xA;#AND TARGET_TABLE = {$l_single_tablename}');&#xA;&#xA;# GET MAX_ID FROM THE WFEXECUTION_DW TABLE&#xA;#$job_ maxkey = sql('DW_ABC_DS', 'SELECT MAX(JOB_ID) FROM RDS_DBA.ETLSYNC_DW');&#xA;#$maxkey = $maxkey + 1;&#xA;&#xA;# INSERT WORKFLOW RECORD&#x9;&#x9;&#xD;&#xA;&#xA;#$l_stepdetail_id = sql('DW_ABC_DS','insert into JOB_STREAM_STEP_DETAIL_RT &#xA;#                (MD_PROCESS_ID, DETAIL_NAME, STATUS, START_TIME)  &#xA;#                VALUES ({$p_process_id}, {$p_detailname}, \'RUNNING\', {sysdate()});&#xA;#&#x9;&#x9;&#x9;&#x9;SELECT SCOPE_IDENTITY() AS NewStepDetailID');&#xA;$l_stepdetail_id = sql('DW_ABC_DS','insert into JOB_STREAM_STEP_DETAIL_RT &#xA;                (MD_PROCESS_ID, DETAIL_NAME, STATUS, START_TIME)  &#xA;                VALUES ({$p_process_id}, {$p_detailname}, \'RUNNING\', convert(varchar(25),convert(datetime,getdate(),111),127));&#xA;&#x9;&#x9;&#x9;&#x9;SELECT SCOPE_IDENTITY() AS NewStepDetailID');&#x9;&#xA;&#xA;set_env(workflow_name(), $l_stepdetail_id);&#xA;&#xA;# print('single_tablename = ' || $l_single_tablename);&#x9;   &#x9;&#xA;&#xA;return null;&#xA;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$p_detailname" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$p_process_id" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$l_stepdetail_id" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="INT" />
<DISteps>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ********************************" datatype="VARCHAR" size="40" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ********************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ********************************" datatype="VARCHAR" size="40" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('        ** The workflow [workflow_name()] is starting')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="        ** The workflow [workflow_name()] is starting" datatype="VARCHAR" size="53" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('        **   user: ' || system_user_name()))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="        **   user: " datatype="VARCHAR" size="19" />
<FUNCTION_CALL name="system_user_name"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('        **   detail name: ' || $p_detailname))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="        **   detail name: " datatype="VARCHAR" size="26" />
<VARIABLE_REFERENCE name="$p_detailname" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$l_stepdetail_id" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', 'insert into JOB_STREAM_STEP_DETAIL_RT &#xA;                (MD_PROCESS_ID, DETAIL_NAME, STATUS, START_TIME)  &#xA;                VALUES ({$p_process_id}, {$p_detailname}, \'RUNNING\', convert(varchar(25),convert(datetime,getdate(),111),127));&#xA;&#x9;&#x9;&#x9;&#x9;SELECT SCOPE_IDENTITY() AS NewStepDetailID')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<CONSTANT value="insert into JOB_STREAM_STEP_DETAIL_RT &#xA;                (MD_PROCESS_ID, DETAIL_NAME, STATUS, START_TIME)  &#xA;                VALUES ({$p_process_id}, {$p_detailname}, 'RUNNING', convert(varchar(25),convert(datetime,getdate(),111),127));&#xA;&#x9;&#x9;&#x9;&#x9;SELECT SCOPE_IDENTITY() AS NewStepDetailID" datatype="VARCHAR" size="280" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="set_env(workflow_name(), $l_stepdetail_id)" >
<FUNCTION_CALL name="set_env"  type="DI" >
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$l_stepdetail_id" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr=" NULL " >
<CONSTANT_NULL /></DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="ETL_PRINT" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="# 1/2 Retrieve contextual information from the environment&#xA;if ( is_set_env( 'ETL_BATCH_ID' ) = 1 )&#xA;begin&#xA;&#x9;$l_batch_id = get_env( 'ETL_BATCH_ID' );&#xA;end&#xA;else&#xA;begin&#xA;&#x9;$l_batch_id = '-';&#xA;end&#xA;&#xA;if ( is_set_env( 'ETL_PROCESS_ID' ) = 1 )&#xA;begin&#xA;&#x9;$l_process_id = get_env( 'ETL_PROCESS_ID' );&#x9;&#xA;end&#xA;else&#xA;begin&#xA;&#x9;$l_process_id = '-';&#x9;&#xA;end&#xA;&#xA;# 2/2 Really print&#xA;if ( get_env('ETL_TRACE_LEVEL') = 'ALL' )&#xA;begin&#xA;&#x9;if ( is_set_env( workflow_name() ) = 1 )&#xA;&#x9;begin&#xA;&#x9;&#x9;$l_stepdetail_id = get_env( workflow_name() );&#xA;&#x9;&#x9;print( '\[Batch:' || $l_batch_id || '\] \[Proc:' || $l_process_id || '\] \[Detail:' || $l_stepdetail_id || '\] ' || $p_MESSAGE );&#xA;&#x9;end&#xA;&#x9;else&#xA;&#x9;begin&#xA;    &#x9;print( '\[Batch:' || $l_batch_id || '\] \[Proc:' || $l_process_id || '\] ' || $p_MESSAGE );&#xA;&#x9;end&#xA;end&#xA;&#xA;return null;&#xA;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
<DIAttribute name="Description" value="This function is internal and should NOT be used by application developers.&#xA;&#xA;This function prints the parameter message to the logs with contextual information (batch id, process id) as set by the ABC_STARTJB_FN function.&#xA;&#xA;This trace file is currently the standard Data Services trace file. for instance: C:\Program Files\Business Objects\BusinessObjects Data Services\log\tracelog.txt"/>
<DIAttribute name="Parallelizable" value="no"/>
<DIAttribute name="isScriptValidationFunction" value="no"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$p_MESSAGE" datatype="VARCHAR" size="256" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$l_batch_id" datatype="INT" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_process_id" datatype="INT" >
</DIElement>
<DIElement paramType="LOCAL" name="$l_stepdetail_id" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="INT" />
<DISteps>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(is_set_env('ETL_BATCH_ID') = 1)" >
<LOGICAL_OP op="EQ">
<FUNCTION_CALL name="is_set_env"  type="DI" >
<CONSTANT value="ETL_BATCH_ID" datatype="VARCHAR" size="12" />
</FUNCTION_CALL>
<CONSTANT value="1" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIAssignmentStep typeId="12" variable="$l_batch_id" >
<DIExpression isString="true" expr="get_env('ETL_BATCH_ID')" >
<FUNCTION_CALL name="get_env"  type="DI" >
<CONSTANT value="ETL_BATCH_ID" datatype="VARCHAR" size="12" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
</DIIf>
<DIElse>
<DIAssignmentStep typeId="12" variable="$l_batch_id" >
<DIExpression isString="true" expr="'-'" >
<CONSTANT value="-" datatype="VARCHAR" size="1" />
</DIExpression>
</DIAssignmentStep>
</DIElse>
</DIIfStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(is_set_env('ETL_PROCESS_ID') = 1)" >
<LOGICAL_OP op="EQ">
<FUNCTION_CALL name="is_set_env"  type="DI" >
<CONSTANT value="ETL_PROCESS_ID" datatype="VARCHAR" size="14" />
</FUNCTION_CALL>
<CONSTANT value="1" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIAssignmentStep typeId="12" variable="$l_process_id" >
<DIExpression isString="true" expr="get_env('ETL_PROCESS_ID')" >
<FUNCTION_CALL name="get_env"  type="DI" >
<CONSTANT value="ETL_PROCESS_ID" datatype="VARCHAR" size="14" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
</DIIf>
<DIElse>
<DIAssignmentStep typeId="12" variable="$l_process_id" >
<DIExpression isString="true" expr="'-'" >
<CONSTANT value="-" datatype="VARCHAR" size="1" />
</DIExpression>
</DIAssignmentStep>
</DIElse>
</DIIfStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(get_env('ETL_TRACE_LEVEL') = 'ALL')" >
<LOGICAL_OP op="EQ">
<FUNCTION_CALL name="get_env"  type="DI" >
<CONSTANT value="ETL_TRACE_LEVEL" datatype="VARCHAR" size="15" />
</FUNCTION_CALL>
<CONSTANT value="ALL" datatype="VARCHAR" size="3" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(is_set_env(workflow_name()) = 1)" >
<LOGICAL_OP op="EQ">
<FUNCTION_CALL name="is_set_env"  type="DI" >
<FUNCTION_CALL name="workflow_name"  type="DI" />
</FUNCTION_CALL>
<CONSTANT value="1" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIAssignmentStep typeId="12" variable="$l_stepdetail_id" >
<DIExpression isString="true" expr="get_env(workflow_name())" >
<FUNCTION_CALL name="get_env"  type="DI" >
<FUNCTION_CALL name="workflow_name"  type="DI" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="print(((((((('\\[Batch:' || $l_batch_id) || '\\] \\[Proc:') || $l_process_id) || '\\] \\[Detail:') || $l_stepdetail_id) || '\\] ') || $p_MESSAGE))" >
<FUNCTION_CALL name="print"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="\[Batch:" datatype="VARCHAR" size="8" />
<VARIABLE_REFERENCE name="$l_batch_id" />
</CONCAT>
<CONSTANT value="\] \[Proc:" datatype="VARCHAR" size="10" />
</CONCAT>
<VARIABLE_REFERENCE name="$l_process_id" />
</CONCAT>
<CONSTANT value="\] \[Detail:" datatype="VARCHAR" size="12" />
</CONCAT>
<VARIABLE_REFERENCE name="$l_stepdetail_id" />
</CONCAT>
<CONSTANT value="\] " datatype="VARCHAR" size="3" />
</CONCAT>
<VARIABLE_REFERENCE name="$p_MESSAGE" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
<DIElse>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="print(((((('\\[Batch:' || $l_batch_id) || '\\] \\[Proc:') || $l_process_id) || '\\] ') || $p_MESSAGE))" >
<FUNCTION_CALL name="print"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="\[Batch:" datatype="VARCHAR" size="8" />
<VARIABLE_REFERENCE name="$l_batch_id" />
</CONCAT>
<CONSTANT value="\] \[Proc:" datatype="VARCHAR" size="10" />
</CONCAT>
<VARIABLE_REFERENCE name="$l_process_id" />
</CONCAT>
<CONSTANT value="\] " datatype="VARCHAR" size="3" />
</CONCAT>
<VARIABLE_REFERENCE name="$p_MESSAGE" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIElse>
</DIIfStep>
</DIIf>
<DIElse>
</DIElse>
</DIIfStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr=" NULL " >
<CONSTANT_NULL /></DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="FBI_GET_FILELOCATION" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="#this function takes  the target directory for the files&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;# lookup for location&#xD;&#xA; $L_FILE_LOCATION =  lookup_ext([DW_METADATA_DS.DW_METADATA_ALIAS.FILE_LOCATION_INFO, 'PRE_LOAD_CACHE', 'MAX'], &#xD;&#xA;                               [ FILE_LOCATION ], &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;   [ NULL ], &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;   [ SOURCE, '=', $P_PRODUCT_NAME ]) &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;SET(&quot;run_as_separate_process&quot; = 'no');&#xD;&#xA;&#xD;&#xA;# return value&#xD;&#xA;return  $L_FILE_LOCATION;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
<DIAttribute name="Description" value="this function get the target directory for the files from file_location_info"/>
<DIAttribute name="Parallelizable" value="no"/>
<DIAttribute name="isScriptValidationFunction" value="no"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$P_PRODUCT_NAME" datatype="VARCHAR" size="50" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$L_FILE_LOCATION" datatype="VARCHAR" size="200" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="VARCHAR" size="200" />
<DISteps>
<DIAssignmentStep typeId="12" variable="$L_FILE_LOCATION" >
<DIExpression isString="true" expr="lookup_ext([DW_METADATA_DS.DW_METADATA_ALIAS.FILE_LOCATION_INFO, 'PRE_LOAD_CACHE', 'MAX'], [ FILE_LOCATION ], [  NULL  ], [ SOURCE, '=', $P_PRODUCT_NAME ]) &#xA;SET(&quot;run_as_separate_process&quot; = 'no')&#xA;" >
<FUNCTION_CALL name="lookup_ext"  type="DI" tableDatastore="DW_METADATA_DS" tableOwner="DW_METADATA_ALIAS" tableName="FILE_LOCATION_INFO" >
<CONSTANT value="PRE_LOAD_CACHE" datatype="VARCHAR" size="14" />
<CONSTANT value="MAX" datatype="VARCHAR" size="3" />
<VARIABLE_REFERENCE name="$P_PRODUCT_NAME" />
<CONSTANT_NULL /><DIAttributes>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr="$L_FILE_LOCATION" >
<VARIABLE_REFERENCE name="$L_FILE_LOCATION" />
</DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="GET_VALIDATION_STATUS_FN" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="#print('GET_VALIDATION_STATUS_FN incoming values. $ENABLE_VAL_GV = ' || $enable_val_ind || ' , $TABLE_NAME = ' || $table_name);&#xA;# CHECK THE VALUE OF THE ENABLE VALIDATION INDICATOR SET FOR THE JOB&#xA;# IF INDICATOR IS 'ALL'  SET/RETURN VALIDATION TO 'ON' &#xA;# IF INDICATOR IS 'NONE' SET/RETURN VALIDATION TO 'OFF' &#xA;# IF INDICATOR IS 'SOME' CHECK THE VALIDATION_STATUS FOR THE DEFINED TABLE&#xA;#  IN THE SOURCE REFERENCE TABLE AND SET/RETURN THAT VALUE ('ON' OR 'OFF')&#xA;&#xA;if ((upper($enable_val_ind) = 'ALL') or ($enable_val_ind = ''))&#xA;  $ret_val_ind_lv = 'ON';&#xA;else if (upper($enable_val_ind) = 'NONE')&#xA;  $ret_val_ind_lv = 'OFF';&#xA;else if (upper($enable_val_ind) = 'SOME')&#xA;begin&#xA;  $ret_val_ind_lv = upper(sql('SRCSTAGING_DS', 'SELECT VALIDATION_STATUS FROM VALIDATION_REF WHERE SOURCE_TABLE = {$table_name}')); &#xA;  if ($ret_val_ind_lv is null )&#xA;  begin&#xA;    print('GET_VALIDATION_STATUS_FN warning. The value &lt;' || $table_name || '&gt; is not found in table VALIDATION_REF');&#xA;    $ret_val_ind_lv = 'OFF';&#xA;  end&#xA;end&#xA;else&#xA;  $ret_val_ind_lv = 'OFF';&#xA;&#xA;#print('GET_VALIDATION_STATUS_FN outgoing values. Validation is ' || $ret_val_ind_lv || ' for table_name = ' || $table_name);&#xA;Return $ret_val_ind_lv;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$enable_val_ind" datatype="VARCHAR" size="4" >
</DIElement>
<DIElement paramType="IN" name="$table_name" datatype="VARCHAR" size="50" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$ret_val_ind_lv" datatype="VARCHAR" size="4" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="VARCHAR" size="4" />
<DISteps>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="((upper($enable_val_ind) = 'ALL') OR&#xA;   ($enable_val_ind = ''))" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="EQ">
<FUNCTION_CALL name="upper"  type="DI" >
<VARIABLE_REFERENCE name="$enable_val_ind" />
</FUNCTION_CALL>
<CONSTANT value="ALL" datatype="VARCHAR" size="3" />
</LOGICAL_OP>
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$enable_val_ind" />
<CONSTANT value="" datatype="VARCHAR" size="0" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIAssignmentStep typeId="12" variable="$ret_val_ind_lv" >
<DIExpression isString="true" expr="'ON'" >
<CONSTANT value="ON" datatype="VARCHAR" size="2" />
</DIExpression>
</DIAssignmentStep>
</DIIf>
<DIElse>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(upper($enable_val_ind) = 'NONE')" >
<LOGICAL_OP op="EQ">
<FUNCTION_CALL name="upper"  type="DI" >
<VARIABLE_REFERENCE name="$enable_val_ind" />
</FUNCTION_CALL>
<CONSTANT value="NONE" datatype="VARCHAR" size="4" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIAssignmentStep typeId="12" variable="$ret_val_ind_lv" >
<DIExpression isString="true" expr="'OFF'" >
<CONSTANT value="OFF" datatype="VARCHAR" size="3" />
</DIExpression>
</DIAssignmentStep>
</DIIf>
<DIElse>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(upper($enable_val_ind) = 'SOME')" >
<LOGICAL_OP op="EQ">
<FUNCTION_CALL name="upper"  type="DI" >
<VARIABLE_REFERENCE name="$enable_val_ind" />
</FUNCTION_CALL>
<CONSTANT value="SOME" datatype="VARCHAR" size="4" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIAssignmentStep typeId="12" variable="$ret_val_ind_lv" >
<DIExpression isString="true" expr="upper(sql('SRCSTAGING_DS', 'SELECT VALIDATION_STATUS FROM VALIDATION_REF WHERE SOURCE_TABLE = {$table_name}'))" >
<FUNCTION_CALL name="upper"  type="DI" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="SRCSTAGING_DS" datatype="VARCHAR" size="13" />
<CONSTANT value="SELECT VALIDATION_STATUS FROM VALIDATION_REF WHERE SOURCE_TABLE = {$table_name}" datatype="VARCHAR" size="79" />
</FUNCTION_CALL>
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($ret_val_ind_lv IS  NULL )" >
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$ret_val_ind_lv" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="print((('GET_VALIDATION_STATUS_FN warning. The value &lt;' || $table_name) || '&gt; is not found in table VALIDATION_REF'))" >
<FUNCTION_CALL name="print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="GET_VALIDATION_STATUS_FN warning. The value &lt;" datatype="VARCHAR" size="45" />
<VARIABLE_REFERENCE name="$table_name" />
</CONCAT>
<CONSTANT value="&gt; is not found in table VALIDATION_REF" datatype="VARCHAR" size="38" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$ret_val_ind_lv" >
<DIExpression isString="true" expr="'OFF'" >
<CONSTANT value="OFF" datatype="VARCHAR" size="3" />
</DIExpression>
</DIAssignmentStep>
</DIIf>
</DIIfStep>
</DIIf>
<DIElse>
<DIAssignmentStep typeId="12" variable="$ret_val_ind_lv" >
<DIExpression isString="true" expr="'OFF'" >
<CONSTANT value="OFF" datatype="VARCHAR" size="3" />
</DIExpression>
</DIAssignmentStep>
</DIElse>
</DIIfStep>
</DIElse>
</DIIfStep>
</DIElse>
</DIIfStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr="$ret_val_ind_lv" >
<VARIABLE_REFERENCE name="$ret_val_ind_lv" />
</DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="M_ICPS_GET_MAX_WF_PROCESS_ID" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="#this function returns the max process id for a given workflow&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;if ($P_BATCH_ID &gt; 0 )&#xD;&#xA;&#x9;begin&#xD;&#xA;&#x9;&#x9;$L_SQL = 'SELECT MAX (sd.MD_PROCESS_ID) FROM dwabc.JOB_STREAM_STEP_DETAIL_RT sd where sd.DETAIL_NAME = \''||$P_WF_NAME||'\' and sd.MD_PROCESS_ID in  (SELECT MD_PROCESS_ID FROM dwabc.JOB_STREAM_STEP_RT s WHERE s.MD_BATCH_ID='||$P_BATCH_ID ||' and s.JOB_NAME = \''||$P_JOB_NAME ||'\' )  ';&#xA;&#x9;&#x9;$L_LAST_ProcessID  = sql('DW_ABC_DS',$L_SQL);&#xD;&#xA;&#x9;end&#xD;&#xA;&#xD;&#xA;# RETURN VALUE&#xD;&#xA;return   $L_LAST_ProcessID;&#xD;&#xA;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
<DIAttribute name="Description" value="this function takes last status per batch over WF"/>
<DIAttribute name="Parallelizable" value="no"/>
<DIAttribute name="isScriptValidationFunction" value="no"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$P_BATCH_ID" datatype="INT" >
</DIElement>
<DIElement paramType="IN" name="$P_WF_NAME" datatype="VARCHAR" size="50" >
</DIElement>
<DIElement paramType="IN" name="$P_JOB_NAME" datatype="VARCHAR" size="50" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$L_LAST_ProcessID" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_SQL" datatype="VARCHAR" size="600" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="VARCHAR" size="200" />
<DISteps>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($P_BATCH_ID &gt; 0)" >
<LOGICAL_OP op="GT">
<VARIABLE_REFERENCE name="$P_BATCH_ID" />
<CONSTANT value="0" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIAssignmentStep typeId="12" variable="$L_SQL" >
<DIExpression isString="true" expr="(((((('SELECT MAX (sd.MD_PROCESS_ID) FROM dwabc.JOB_STREAM_STEP_DETAIL_RT sd where sd.DETAIL_NAME = \'' || $P_WF_NAME) || '\' and sd.MD_PROCESS_ID in  (SELECT MD_PROCESS_ID FROM dwabc.JOB_STREAM_STEP_RT s WHERE s.MD_BATCH_ID=') || $P_BATCH_ID) || ' and s.JOB_NAME = \'') || $P_JOB_NAME) || '\' )  ')" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="SELECT MAX (sd.MD_PROCESS_ID) FROM dwabc.JOB_STREAM_STEP_DETAIL_RT sd where sd.DETAIL_NAME = '" datatype="VARCHAR" size="94" />
<VARIABLE_REFERENCE name="$P_WF_NAME" />
</CONCAT>
<CONSTANT value="' and sd.MD_PROCESS_ID in  (SELECT MD_PROCESS_ID FROM dwabc.JOB_STREAM_STEP_RT s WHERE s.MD_BATCH_ID=" datatype="VARCHAR" size="101" />
</CONCAT>
<VARIABLE_REFERENCE name="$P_BATCH_ID" />
</CONCAT>
<CONSTANT value=" and s.JOB_NAME = '" datatype="VARCHAR" size="19" />
</CONCAT>
<VARIABLE_REFERENCE name="$P_JOB_NAME" />
</CONCAT>
<CONSTANT value="' )  " datatype="VARCHAR" size="5" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_LAST_ProcessID" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', $L_SQL)" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<VARIABLE_REFERENCE name="$L_SQL" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
</DIIf>
</DIIfStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr="$L_LAST_ProcessID" >
<VARIABLE_REFERENCE name="$L_LAST_ProcessID" />
</DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="M_ICPS_GET_WF_STATUS" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="#this function takes last status for run extract batch&#xD;&#xA;&#xD;&#xA;if ($P_MAX_PROCESS_ID is not null)&#xD;&#xA;begin&#xA;&#x9;$L_SQL = 'select status from dwabc.JOB_STREAM_STEP_DETAIL_RT where MD_PROCESS_ID = {$P_MAX_PROCESS_ID} and  DETAIL_NAME = {$L_WF_NAME}';&#xA;&#x9;$L_LAST_STATUS  = sql('DW_ABC_DS',$L_SQL);&#x9;&#xA;end&#xD;&#xA;else &#xD;&#xA;begin&#xA;&#x9;$L_LAST_STATUS=null;&#xA;end&#xD;&#xA;&#xD;&#xA;&#x9;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;# return value&#xD;&#xA;return   $L_LAST_STATUS;&#xD;&#xA;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
<DIAttribute name="Description" value="this function takes last status per batch over WF"/>
<DIAttribute name="Parallelizable" value="no"/>
<DIAttribute name="isScriptValidationFunction" value="no"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$P_MAX_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="IN" name="$L_WF_NAME" datatype="VARCHAR" size="200" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$L_LAST_STATUS" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_SQL" datatype="VARCHAR" size="600" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="VARCHAR" size="200" />
<DISteps>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="($P_MAX_PROCESS_ID IS NOT  NULL )" >
<LOGICAL_OP op="IS NOT NULL">
<VARIABLE_REFERENCE name="$P_MAX_PROCESS_ID" />
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIAssignmentStep typeId="12" variable="$L_SQL" >
<DIExpression isString="true" expr="'select status from dwabc.JOB_STREAM_STEP_DETAIL_RT where MD_PROCESS_ID = {$P_MAX_PROCESS_ID} and  DETAIL_NAME = {$L_WF_NAME}'" >
<CONSTANT value="select status from dwabc.JOB_STREAM_STEP_DETAIL_RT where MD_PROCESS_ID = {$P_MAX_PROCESS_ID} and  DETAIL_NAME = {$L_WF_NAME}" datatype="VARCHAR" size="124" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_LAST_STATUS" >
<DIExpression isString="true" expr="sql('DW_ABC_DS', $L_SQL)" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_ABC_DS" datatype="VARCHAR" size="9" />
<VARIABLE_REFERENCE name="$L_SQL" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
</DIIf>
<DIElse>
<DIAssignmentStep typeId="12" variable="$L_LAST_STATUS" >
<DIExpression isString="true" expr=" NULL " >
<CONSTANT_NULL /></DIExpression>
</DIAssignmentStep>
</DIElse>
</DIIfStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr="$L_LAST_STATUS" >
<VARIABLE_REFERENCE name="$L_LAST_STATUS" />
</DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="M_ICPS_RERUN_CLEANUP" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="# delete table by MD_BATCH_ID, MD_PROCESS_ID and MD_CP_ID&#xA;$l_return = sql ('SRCSTAGING_DS','DELETE FROM [$P_SOURCE_TABLE] where  MD_BATCH_ID = {$P_BATCH_ID} and MD_PROCESS_ID = {$P_PROCESS_ID} and MD_CP_ID = {$P_CP_ID} ');&#xA;&#xA;return null;&#xA;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
<DIAttribute name="Description" value="This function delete table before a rerun of the workflows in case of a partial failure."/>
<DIAttribute name="Parallelizable" value="no"/>
<DIAttribute name="isScriptValidationFunction" value="no"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$P_SOURCE_TABLE" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$P_BATCH_ID" datatype="INT" >
</DIElement>
<DIElement paramType="IN" name="$P_PROCESS_ID" datatype="INT" >
</DIElement>
<DIElement paramType="IN" name="$P_CP_ID" datatype="INT" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$l_return" datatype="VARCHAR" size="400" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="INT" />
<DISteps>
<DIAssignmentStep typeId="12" variable="$l_return" >
<DIExpression isString="true" expr="sql('SRCSTAGING_DS', 'DELETE FROM [$P_SOURCE_TABLE] where  MD_BATCH_ID = {$P_BATCH_ID} and MD_PROCESS_ID = {$P_PROCESS_ID} and MD_CP_ID = {$P_CP_ID} ')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="SRCSTAGING_DS" datatype="VARCHAR" size="13" />
<CONSTANT value="DELETE FROM [$P_SOURCE_TABLE] where  MD_BATCH_ID = {$P_BATCH_ID} and MD_PROCESS_ID = {$P_PROCESS_ID} and MD_CP_ID = {$P_CP_ID} " datatype="VARCHAR" size="127" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr=" NULL " >
<CONSTANT_NULL /></DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIScriptFunction name="METADATA_GET_SOURCE_ENTITY_NAME" typeId="11" >
<DIUIOptions>
<DIAttribute name="ui_script_text" value="# this function returns the source entity name for a given extraction entity name&#xD;&#xA;&#xA;$L_SOURCE_ENTITY_NAME = sql('DW_METADATA_DS','select Dwid from dwmetadata.SourceModel where Extractionidentifier = {$P_EXT_ENTITY_NAME}');&#xD;&#xA;&#xD;&#xA;return $L_SOURCE_ENTITY_NAME;"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Acta_user_func_category" value="User_Script_Function"/>
<DIAttribute name="Parallelizable" value="no"/>
<DIAttribute name="isScriptValidationFunction" value="no"/>
</DIProperties>
<DIParameters><DIElement paramType="IN" name="$P_EXT_ENTITY_NAME" datatype="VARCHAR" size="200" >
</DIElement>
</DIParameters>
<DIVariables><DIElement paramType="LOCAL" name="$L_SOURCE_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
</DIVariables>
<DIFunctionReturn datatype="VARCHAR" size="200" />
<DISteps>
<DIAssignmentStep typeId="12" variable="$L_SOURCE_ENTITY_NAME" >
<DIExpression isString="true" expr="sql('DW_METADATA_DS', 'select Dwid from dwmetadata.SourceModel where Extractionidentifier = {$P_EXT_ENTITY_NAME}')" >
<FUNCTION_CALL name="sql"  type="DI" >
<CONSTANT value="DW_METADATA_DS" datatype="VARCHAR" size="14" />
<CONSTANT value="select Dwid from dwmetadata.SourceModel where Extractionidentifier = {$P_EXT_ENTITY_NAME}" datatype="VARCHAR" size="89" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIReturnStep typeId="30" >
<DIExpression isString="true" expr="$L_SOURCE_ENTITY_NAME" >
<VARIABLE_REFERENCE name="$L_SOURCE_ENTITY_NAME" />
</DIExpression>
</DIReturnStep>
</DISteps>
</DIScriptFunction>
<DIJob name="SA_EXT_JB" typeId="2" >
<DIProperties>
<DIAttribute name="GeneratorTemplate" value="PRODUCT_EXT_JB (version 0.13.0-SNAPSHOT)"/>
<DIAttribute name="GeneratorVersion" value="v1.0"/>
<DIAttribute name="GenerationDate" value="Fri, 23 Jan 2009 10:50:01"/>
<DIAttribute name="Description" value="The BO DS job SA_EXT_JB is responsible for loading the AM EXT tables.  These tables are staging tables that contain validated delta data.  Data is sourced from the extracted flat files and loaded into the EXT tables.  Specific fields will be validated to make sure the data can be processed.  Not every field will be validated but the facility will exist to do so.  The following are some of the types of validations that may be performed:&#xA;Null Business Keys&#xA;Invalid date format&#xA;Invalid numbers&#xA;TBD (more use cases to identify advanced validation)&#xA;If a record is sourced from the extract file with a null business key the record will be written to the VAL_F tables.  These tables will house all records that have validation errors that prevent the data from being processed.  Some of the format validations may have default values that allow the data to be processed.  An example of this if there is an invalid date format it may be set to a low date 01/01/1900 if it is not vital for the integrity of the data."/>
<DIAttribute name="Web_Service_Enabled" value="YES"/>
</DIProperties>
<DIVariables>
<DIElement paramType="LOCAL" name="$L_BATCH_FILE" datatype="VARCHAR" size="250" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_ARCHIVE_BATCH_STATUS" datatype="VARCHAR" size="15" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_ENTITY_COUNT" datatype="INT" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_SUCCESS_FLAG" datatype="INT" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_WAITING_RUNNING_WF" datatype="INT" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_DEBUG_MODE" datatype="INT" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_TRACE_MODE" datatype="INT" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_PROCESS_ID" datatype="DECIMAL" precision="10" scale="0" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_FLAG_DELETE" datatype="VARCHAR" size="6" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_FLAG_UPDATE" datatype="VARCHAR" size="6" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_FLAG_NEW" datatype="VARCHAR" size="6" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_MD_NON_PREFILL_FLAG" datatype="VARCHAR" size="1" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_MD_FROM_PREFILL_FLAG" datatype="VARCHAR" size="1" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_MODDATE_LOC" datatype="DATETIME" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_ENABLE_VAL" datatype="VARCHAR" size="4" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_SA_FILELOCATION" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_SA_FILELOCATION_ARCH" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_CONTENT_PACK_ID" datatype="DECIMAL" precision="10" scale="0" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_PRODUCT_NAME" datatype="VARCHAR" size="50" >
</DIElement>
<DIElement paramType="GLOBAL" name="$G_EXTN_FILELOCATION" datatype="VARCHAR" size="200" >
</DIElement>
</DIVariables>
<DISteps>
<DITryStep typeId="13" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ui_display_name" value="SA_EXT_JB_TRY"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="STARTJB_SC is used to set global variables and initiates the metadata tracking for the Job"/>
<DIAttribute name="ui_display_name" value="STARTJB_SC"/>
<DIAttribute name="ui_script_text" value="# Initialize the Location of Source Extract Files and Archiving Destination&#xD;&#xA;&#xD;&#xA;# PRODUCT_NAME&#xD;&#xA;$G_PRODUCT_NAME = 'SA';&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;$G_SA_FILELOCATION = FBI_GET_FILELOCATION( $G_PRODUCT_NAME ) ;&#xD;&#xA;$G_SA_FILELOCATION_ARCH = FBI_GET_FILELOCATION(  'EXTERNAL_ARCHIVE' ) ;&#xD;&#xA;$G_EXTN_FILELOCATION = lookup_ext([DW_METADATA_DS.DW_METADATA_ALIAS.FILE_LOCATION_INFO, 'PRE_LOAD_CACHE', 'MAX'], [ FILE_LOCATION ], [ NULL ], [ SOURCE, '=', 'EXTERNAL' ])&#xD;&#xA;&#xD;&#xA;SET(&quot;run_as_separate_process&quot; = 'no');&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;ABC_STARTJB_FN($G_PROCESS_ID, $G_DEBUG_MODE, $G_BATCH_ID);&#xD;&#xA;&#xD;&#xA;ETL_PRINT('****************************************************************************************************************');&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;ETL_PRINT('Source Extract Flat Files are located in the '||$G_SA_FILELOCATION||' directory.' );&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;ETL_PRINT('****************************************************************************************************************');"/>
</DIUIOptions>
<DIAssignmentStep typeId="12" variable="$G_PRODUCT_NAME" >
<DIExpression isString="true" expr="'SA'" >
<CONSTANT value="SA" datatype="VARCHAR" size="2" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$G_SA_FILELOCATION" >
<DIExpression isString="true" expr="fbi_get_filelocation($G_PRODUCT_NAME)" >
<FUNCTION_CALL name="fbi_get_filelocation"  type="DI" >
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$G_SA_FILELOCATION_ARCH" >
<DIExpression isString="true" expr="fbi_get_filelocation('EXTERNAL_ARCHIVE')" >
<FUNCTION_CALL name="fbi_get_filelocation"  type="DI" >
<CONSTANT value="EXTERNAL_ARCHIVE" datatype="VARCHAR" size="16" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$G_EXTN_FILELOCATION" >
<DIExpression isString="true" expr="lookup_ext([DW_METADATA_DS.DW_METADATA_ALIAS.FILE_LOCATION_INFO, 'PRE_LOAD_CACHE', 'MAX'], [ FILE_LOCATION ], [  NULL  ], [ SOURCE, '=', 'EXTERNAL' ]) &#xA;SET(&quot;run_as_separate_process&quot; = 'no')&#xA;" >
<FUNCTION_CALL name="lookup_ext"  type="DI" tableDatastore="DW_METADATA_DS" tableOwner="DW_METADATA_ALIAS" tableName="FILE_LOCATION_INFO" >
<CONSTANT value="PRE_LOAD_CACHE" datatype="VARCHAR" size="14" />
<CONSTANT value="MAX" datatype="VARCHAR" size="3" />
<CONSTANT value="EXTERNAL" datatype="VARCHAR" size="8" />
<CONSTANT_NULL /><DIAttributes>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_startjb_fn($G_PROCESS_ID, $G_DEBUG_MODE, $G_BATCH_ID)" >
<FUNCTION_CALL name="abc_startjb_fn"  type="DI" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
<VARIABLE_REFERENCE name="$G_DEBUG_MODE" />
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('****************************************************************************************************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="****************************************************************************************************************" datatype="VARCHAR" size="112" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('Source Extract Flat Files are located in the ' || $G_SA_FILELOCATION) || ' directory.'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="Source Extract Flat Files are located in the " datatype="VARCHAR" size="45" />
<VARIABLE_REFERENCE name="$G_SA_FILELOCATION" />
</CONCAT>
<CONSTANT value=" directory." datatype="VARCHAR" size="11" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('****************************************************************************************************************')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="****************************************************************************************************************" datatype="VARCHAR" size="112" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_EXT_CONTAINER_WF" >
</DICallStep>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="ENDJB_SC concludes the metadata for the Job and Adds final Entries into the ABC Tracking system"/>
<DIAttribute name="ui_display_name" value="ENDJB_SC"/>
<DIAttribute name="ui_script_text" value="ABC_ENDJB_FN($G_PROCESS_ID);&#xD;&#xA;"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_endjb_fn($G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_endjb_fn"  type="DI" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
<DICatch typeId="20" errorCode="210101" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ui_display_name" value="SA_EXT_JB_CATCH"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ui_display_name" value="SA_EXT_JB_FAIL_SC"/>
<DIAttribute name="ui_script_text" value="ABC_FAILJB_FN($G_PROCESS_ID, 'Error: \[' || error_number() || '\] ' || error_message());&#xD;&#xA;"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_failjb_fn($G_PROCESS_ID, ((('Error: \\[' || error_number()) || '\\] ') || error_message()))" >
<FUNCTION_CALL name="abc_failjb_fn"  type="DI" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="Error: \[" datatype="VARCHAR" size="9" />
<FUNCTION_CALL name="error_number"  type="DI" />
</CONCAT>
<CONSTANT value="\] " datatype="VARCHAR" size="3" />
</CONCAT>
<FUNCTION_CALL name="error_message"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
</DICatch>
</DITryStep>
</DISteps>
<DIAttributes>
<DIAttribute name="job_GV_$G_ENABLE_VAL" value="'SOME'"/>
<DIAttribute name="job_GV_$G_FLAG_DELETE" value="'DEL'"/>
<DIAttribute name="job_GV_$G_FLAG_NEW" value="'NEW'"/>
<DIAttribute name="job_GV_$G_FLAG_UPDATE" value="'UPD'"/>
<DIAttribute name="job_GV_$G_MD_FROM_PREFILL_FLAG" value="'P'"/>
<DIAttribute name="job_GV_$G_MD_NON_PREFILL_FLAG" value="'D'"/>
<DIAttribute name="job_checkpoint_enabled" value="no"/>
<DIAttribute name="job_collect_statistics" value="no"/>
<DIAttribute name="job_collect_statistics_monitor" value="no"/>
<DIAttribute name="job_enable_assemblers" value="yes"/>
<DIAttribute name="job_enable_audit" value="yes"/>
<DIAttribute name="job_enable_dataquality" value="yes"/>
<DIAttribute name="job_export_repo" value="no"/>
<DIAttribute name="job_export_reports" value="no"/>
<DIAttribute name="job_isrecoverable" value="no"/>
<DIAttribute name="job_mode" value="Multi-Process"/>
<DIAttribute name="job_monitor_sample_rate" value="1000"/>
<DIAttribute name="job_name" value="SA_EXT_JB"/>
<DIAttribute name="job_print_version" value="no"/>
<DIAttribute name="job_testmode_enabled" value="no"/>
<DIAttribute name="job_trace_abapquery" value="no"/>
<DIAttribute name="job_trace_all" value="no"/>
<DIAttribute name="job_trace_ascomm" value="no"/>
<DIAttribute name="job_trace_assemblers" value="no"/>
<DIAttribute name="job_trace_audit" value="no"/>
<DIAttribute name="job_trace_dataflow" value="yes"/>
<DIAttribute name="job_trace_idoc_file" value="no"/>
<DIAttribute name="job_trace_memory_loader" value="no"/>
<DIAttribute name="job_trace_memory_reader" value="no"/>
<DIAttribute name="job_trace_optimized_dataflow" value="no"/>
<DIAttribute name="job_trace_parallel_execution" value="no"/>
<DIAttribute name="job_trace_rfc_function" value="no"/>
<DIAttribute name="job_trace_row" value="no"/>
<DIAttribute name="job_trace_script" value="no"/>
<DIAttribute name="job_trace_session" value="yes"/>
<DIAttribute name="job_trace_sql_only" value="no"/>
<DIAttribute name="job_trace_sqlfunctions" value="no"/>
<DIAttribute name="job_trace_sqlloaders" value="no"/>
<DIAttribute name="job_trace_sqlreaders" value="no"/>
<DIAttribute name="job_trace_sqltransforms" value="no"/>
<DIAttribute name="job_trace_stored_procedure" value="no"/>
<DIAttribute name="job_trace_table" value="no"/>
<DIAttribute name="job_trace_table_reader" value="no"/>
<DIAttribute name="job_trace_transform" value="no"/>
<DIAttribute name="job_trace_userfunction" value="no"/>
<DIAttribute name="job_trace_usertransform" value="no"/>
<DIAttribute name="job_trace_workflow" value="yes"/>
<DIAttribute name="job_type" value="batch"/>
<DIAttribute name="job_use_statistics" value="yes"/>
<DIAttribute name="locale_codepage" value="&lt;default&gt;"/>
<DIAttribute name="locale_language" value="&lt;default&gt;"/>
<DIAttribute name="locale_territory" value="&lt;default&gt;"/>
</DIAttributes>
</DIJob>
<DIWorkflow name="SA_EXT_CONTAINER_WF" typeId="2" >
<DIProperties>
<DIAttribute name="Description" value="This Workflow was created in order to house several workflows that will extract data into files from the source system"/>
</DIProperties>
<DISteps>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_EXT_PREFILL_CUSTOM_CONT_WF" >
</DICallStep>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_EXT_CUSTOM_CONT_WF" >
</DICallStep>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_EXT_DELETE_CUSTOM_CONT_WF" >
</DICallStep>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_EXT_PREFILL_GEN_CONT_WF" >
</DICallStep>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_EXT_GEN_CONT_WF" >
</DICallStep>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_EXT_DELETE_GEN_CONT_WF" >
</DICallStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIWorkflow name="SA_EXT_PREFILL_CUSTOM_CONT_WF" typeId="2" >
<DISteps>
<DIParallelStep typeId="11" >
<DISteps>
</DISteps>
</DIParallelStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIWorkflow name="SA_EXT_CUSTOM_CONT_WF" typeId="2" >
<DIProperties>
<DIAttribute name="SAvedAfterCheckOut" value="YES"/>
</DIProperties>
<DISteps>
<DIParallelStep typeId="11" >
<DISteps>
</DISteps>
</DIParallelStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIWorkflow name="SA_EXT_DELETE_CUSTOM_CONT_WF" typeId="2" >
<DISteps>
<DIParallelStep typeId="11" >
<DISteps>
</DISteps>
</DIParallelStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIWorkflow name="SA_EXT_PREFILL_GEN_CONT_WF" typeId="2" >
<DISteps>
<DIParallelStep typeId="11" >
<DISteps>
</DISteps>
</DIParallelStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIWorkflow name="SA_EXT_GEN_CONT_WF" typeId="2" >
<DIUIOptions>
<DIAnnotation name="ANNOTATION_0"><DIAttribute name="ObjectDesc" value="This workflow is a container for the entities concerned by the EXT ETL Step for the source product SA"/>
</DIAnnotation></DIUIOptions>
<DIProperties>
<DIAttribute name="GeneratorTemplate" value="ENTITY_LEVEL_FOR_PRODUCT_CONTAINER_WF (version 0.13.0-SNAPSHOT)"/>
<DIAttribute name="GeneratorVersion" value="v1.0"/>
<DIAttribute name="GenerationDate" value="Fri, 23 Jan 2009 10:50:01"/>
<DIAttribute name="Description" value="This workflow is a container for the entities concerned by the EXT ETL Step for the source product SA. It integrates the following entities:&#xD;&#xA;  - SERVICESTATUS (version 1)&#xD;&#xA;"/>
</DIProperties>
<DISteps>
<DIParallelStep typeId="11" >
<DISteps>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_SERVER_FF_EXT_WF" >
</DICallStep>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_POLICY_FF_EXT_WF" >
</DICallStep>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_JOB_ACTION_FF_EXT_WF" >
</DICallStep>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_JOB_INFO_FF_EXT_WF" >
</DICallStep>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_JOB_POLICY_ITEM_FF_EXT_WF" >
</DICallStep>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_POLICY_RESULT_FF_EXT_WF" >
</DICallStep>
</DISteps>
</DIParallelStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIWorkflow name="SA_SERVER_FF_EXT_WF" typeId="2" >
<DIProperties>
<DIAttribute name="Description" value="This workflow is responsible for loading the delta records found in the flat file extracts into the EXT tables."/>
</DIProperties>
<DIVariables>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_TABLE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_WF_NAME" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_MAX_WF_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_LATEST_WF_STATUS" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_SOURCE_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
</DIVariables>
<DISteps>
<DITryStep typeId="13" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The Try of the Try / Catch Block"/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_TRY"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that initiates the metadata tracking for the workflow. The script will also be used to populate the local workflow variables."/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_START_SC"/>
<DIAttribute name="ui_script_text" value="#WORKFLOW NAME&#xD;&#xA;$L_WF_NAME = workflow_name()||$G_CONTENT_PACK_ID;&#xD;&#xA;&#xD;&#xA;# GET MAX PROCESS_ID OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID&#xD;&#xA;$L_MAX_WF_PROCESS_ID=M_ICPS_GET_MAX_WF_PROCESS_ID($G_BATCH_ID,$L_WF_NAME,job_name( ));&#xD;&#xA;&#xD;&#xA;# GET LAST EXECUTION STATUS OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID, ACCORDING TO MAX PROCESS_ID&#xD;&#xA;$L_LATEST_WF_STATUS =M_ICPS_GET_WF_STATUS($L_MAX_WF_PROCESS_ID,$L_WF_NAME );&#xD;&#xA;&#xD;&#xA;# CALL FUNCTION TO TRACK START OF WORKFLOW&#xD;&#xA;ABC_STARTWF_FN($L_WF_NAME, $G_PROCESS_ID);&#xD;&#xA;&#xD;&#xA;# ASSIGN TABLE NAME VALUE TO BE USED TO LOOKUP THE VALIDATION_STATUS ON THE VALIDATION REFERENCE TABLE AS NECESSARY&#xD;&#xA;$L_ENTITY_NAME ='SERVER';&#xD;&#xA;$L_TABLE_NAME = $G_PRODUCT_NAME ||'_'||$L_ENTITY_NAME ;&#xD;&#xA;$L_VALIDATION_IND = GET_VALIDATION_STATUS_FN($G_ENABLE_VAL, $L_TABLE_NAME);&#xD;&#xA;&#xD;&#xA;# CLEAN PREIOUSLY LOADED DATA FROM DB TABLE, FOR CASES OF RE-RUN AFTER FAILURE&#xD;&#xA;if ($L_MAX_WF_PROCESS_ID is not null and $L_LATEST_WF_STATUS &lt;&gt; 'SUCCESS')&#xD;&#xA;begin&#xD;&#xA;&#x9;M_ICPS_RERUN_CLEANUP ( $L_TABLE_NAME ||'_EXT',$G_BATCH_ID , $L_MAX_WF_PROCESS_ID ,$G_CONTENT_PACK_ID);&#xD;&#xA;end &#xD;&#xA;&#xD;&#xA;# ASSIGN FILE NAME AND FILE LOCATION VALUES&#xD;&#xA;$L_SOURCE_ENTITY_NAME= METADATA_GET_SOURCE_ENTITY_NAME($L_ENTITY_NAME);&#xD;&#xA;&#xD;&#xA;$L_DYNAMIC_FILE_LOCATION = $G_SA_FILELOCATION ;&#xD;&#xA;$L_DYNAMIC_FILE_NAME = $G_PRODUCT_NAME||'_'||$L_SOURCE_ENTITY_NAME||'_'||$G_CONTENT_PACK_ID||'_EXTRACT_FF.TXT';&#xD;&#xA;&#xD;&#xA;# PRINT PARAMETERS USED BASED ON TRACE MODE&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;ETL_PRINT('This EXT Process will read any file named '||$L_DYNAMIC_FILE_NAME); &#xD;&#xA;ETL_PRINT('The File is located in the '||$L_DYNAMIC_FILE_LOCATION||' directory.' );&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
</DIUIOptions>
<DIAssignmentStep typeId="12" variable="$L_WF_NAME" >
<DIExpression isString="true" expr="(workflow_name() || $G_CONTENT_PACK_ID)" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_MAX_WF_PROCESS_ID" >
<DIExpression isString="true" expr="m_icps_get_max_wf_process_id($G_BATCH_ID, $L_WF_NAME, job_name())" >
<FUNCTION_CALL name="m_icps_get_max_wf_process_id"  type="DI" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<FUNCTION_CALL name="job_name"  type="DI" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_LATEST_WF_STATUS" >
<DIExpression isString="true" expr="m_icps_get_wf_status($L_MAX_WF_PROCESS_ID, $L_WF_NAME)" >
<FUNCTION_CALL name="m_icps_get_wf_status"  type="DI" >
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_startwf_fn($L_WF_NAME, $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_startwf_fn"  type="DI" >
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$L_ENTITY_NAME" >
<DIExpression isString="true" expr="'SERVER'" >
<CONSTANT value="SERVER" datatype="VARCHAR" size="6" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_TABLE_NAME" >
<DIExpression isString="true" expr="(($G_PRODUCT_NAME || '_') || $L_ENTITY_NAME)" >
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_VALIDATION_IND" >
<DIExpression isString="true" expr="get_validation_status_fn($G_ENABLE_VAL, $L_TABLE_NAME)" >
<FUNCTION_CALL name="get_validation_status_fn"  type="DI" >
<VARIABLE_REFERENCE name="$G_ENABLE_VAL" />
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(($L_MAX_WF_PROCESS_ID IS NOT  NULL ) AND&#xA;   ($L_LATEST_WF_STATUS != 'SUCCESS'))" >
<LOGICAL_OP op="AND">
<LOGICAL_OP op="IS NOT NULL">
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
</LOGICAL_OP>
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="m_icps_rerun_cleanup(($L_TABLE_NAME || '_EXT'), $G_BATCH_ID, $L_MAX_WF_PROCESS_ID, $G_CONTENT_PACK_ID)" >
<FUNCTION_CALL name="m_icps_rerun_cleanup"  type="DI" >
<CONCAT>
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
<CONSTANT value="_EXT" datatype="VARCHAR" size="4" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
<DIElse>
</DIElse>
</DIIfStep>
<DIAssignmentStep typeId="12" variable="$L_SOURCE_ENTITY_NAME" >
<DIExpression isString="true" expr="metadata_get_source_entity_name($L_ENTITY_NAME)" >
<FUNCTION_CALL name="metadata_get_source_entity_name"  type="DI" >
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_LOCATION" >
<DIExpression isString="true" expr="$G_SA_FILELOCATION" >
<VARIABLE_REFERENCE name="$G_SA_FILELOCATION" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_NAME" >
<DIExpression isString="true" expr="((((($G_PRODUCT_NAME || '_') || $L_SOURCE_ENTITY_NAME) || '_') || $G_CONTENT_PACK_ID) || '_EXTRACT_FF.TXT')" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_SOURCE_ENTITY_NAME" />
</CONCAT>
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<CONSTANT value="_EXTRACT_FF.TXT" datatype="VARCHAR" size="15" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('This EXT Process will read any file named ' || $L_DYNAMIC_FILE_NAME))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="This EXT Process will read any file named " datatype="VARCHAR" size="42" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('The File is located in the ' || $L_DYNAMIC_FILE_LOCATION) || ' directory.'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="The File is located in the " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</CONCAT>
<CONSTANT value=" directory." datatype="VARCHAR" size="11" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
<DIIfStep typeId="2" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="If_condition" value="$L_LATEST_WF_STATUS&lt;&gt;'SUCCESS' or $L_LATEST_WF_STATUS is null"/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_CONDITION"/>
</DIUIOptions>
<DIExpression isString="true" expr="(($L_LATEST_WF_STATUS != 'SUCCESS') OR&#xA;   ($L_LATEST_WF_STATUS IS  NULL ))" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DICallStep typeId="1"  calledObjectType="Dataflow" name="SA_SERVER_FF_EXT_DF" >
<DIUIOptions>
<DIAttribute name="ParmDefaulted_01" value="FALSE"/>
<DIAttribute name="ParmDefaulted_02" value="FALSE"/>
<DIAttribute name="ParmDefaulted_03" value="FALSE"/>
</DIUIOptions>
<DIParameterValues>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_NAME" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</DIExpression>
<DIExpression isString="true" expr="$L_VALIDATION_IND" >
<VARIABLE_REFERENCE name="$L_VALIDATION_IND" />
</DIExpression>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_LOCATION" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</DIExpression>
</DIParameterValues>
</DICallStep>
</DIIf>
<DIElse>
<DIScript>
<DIUIOptions>
<DIAttribute name="ui_display_name" value="SA_SERVER_EXIT_SCRIPT"/>
<DIAttribute name="ui_script_text" value="ETL_PRINT('PREVIOS RUN OF WORKFLOW &gt;&gt; '||$L_WF_NAME||' FOR BATCH ID &gt;&gt; '||$G_BATCH_ID||' HAS FINISHED SUCCESSFULLY!');"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((((('PREVIOS RUN OF WORKFLOW &gt;&gt; ' || $L_WF_NAME) || ' FOR BATCH ID &gt;&gt; ') || $G_BATCH_ID) || ' HAS FINISHED SUCCESSFULLY!'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="PREVIOS RUN OF WORKFLOW &gt;&gt; " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</CONCAT>
<CONSTANT value=" FOR BATCH ID &gt;&gt; " datatype="VARCHAR" size="17" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</CONCAT>
<CONSTANT value=" HAS FINISHED SUCCESSFULLY!" datatype="VARCHAR" size="27" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DIElse>
</DIIfStep>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This script that calls the custom function that closes the metadata records that are part of tracking the workflow process."/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_END_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK END OF WORKFLOW&#xD;&#xA;ABC_ENDWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID);"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_endwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_endwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
<DICatch typeId="20" errorCode="210101" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The workflow catch object is the end of the TRY/CATCH block in BO DS.  This catch block contains the script object that calls a custom fail workflow function used to write the metadata for failed jobs."/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_CATCH"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that is used to write the metadata for failed workflows."/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_FAIL_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK FAIL OF WORKFLOW&#xD;&#xA;ABC_FAILWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID, 'Error: \[' || error_number() || '\] ' || error_message());"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_failwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID, ((('Error: \\[' || error_number()) || '\\] ') || error_message()))" >
<FUNCTION_CALL name="abc_failwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="Error: \[" datatype="VARCHAR" size="9" />
<FUNCTION_CALL name="error_number"  type="DI" />
</CONCAT>
<CONSTANT value="\] " datatype="VARCHAR" size="3" />
</CONCAT>
<FUNCTION_CALL name="error_message"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
</DICatch>
</DITryStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIDataflow name="SA_SERVER_FF_EXT_DF" typeId="1" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Description" value="The dataflow that loads delta data from the flat file extracts into the EXT tables.  The data structure of the EXT tables will be the same as the flat file extracts.  All data will be sourced from the flat files.  The data that is sourced will be processed through a validation transformation when possible to make sure that data is usable.  All data that is determined to be not processable will be loaded into the table VALF tables.  VALF tables contain only those records which failed the validation check and were deemed unusable."/>
</DIProperties>
<DIParameters>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$P_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="255" >
</DIElement>
</DIParameters>
<DITransforms>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The query transform QRY_EXTRACT sources data from the specific flat file.  All data from the source file is pulled into the data flow."/>
<DIAttribute name="ui_acta_from_schema_0" value="SA_SERVER"/>
<DIAttribute name="ui_display_name" value="QRY_EXTRACT"/>
</DIUIOptions>
<DISchema name="QRY_EXTRACT" >
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DISCOVEREDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.DISCOVEREDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="MANUFACTURE" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.MANUFACTURE"/>
</DIAttributes>
</DIElement>
<DIElement name="MEMORYQUANTITY" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.MEMORYQUANTITY"/>
</DIAttributes>
</DIElement>
<DIElement name="MODEL" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.MODEL"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="NETBIOSNAME" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.NETBIOSNAME"/>
</DIAttributes>
</DIElement>
<DIElement name="OPSLIFECYCLE" datatype="VARCHAR" size="60" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.OPSLIFECYCLE"/>
</DIAttributes>
</DIElement>
<DIElement name="OSVERSION" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.OSVERSION"/>
</DIAttributes>
</DIElement>
<DIElement name="SERIALNUMBER" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.SERIALNUMBER"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_SERVER.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="upper(SERVERID)"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="SA_SERVER.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="SA_SERVER.DISCOVEREDDATE" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="DISCOVEREDDATE" />
</DIExpression>
<DIExpression isString="true" expr="SA_SERVER.MANUFACTURE" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="MANUFACTURE" />
</DIExpression>
<DIExpression isString="true" expr="SA_SERVER.MEMORYQUANTITY" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="MEMORYQUANTITY" />
</DIExpression>
<DIExpression isString="true" expr="SA_SERVER.MODEL" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="MODEL" />
</DIExpression>
<DIExpression isString="true" expr="SA_SERVER.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="SA_SERVER.NAME" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="SA_SERVER.NETBIOSNAME" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="NETBIOSNAME" />
</DIExpression>
<DIExpression isString="true" expr="SA_SERVER.OPSLIFECYCLE" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="OPSLIFECYCLE" />
</DIExpression>
<DIExpression isString="true" expr="SA_SERVER.OSVERSION" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="OSVERSION" />
</DIExpression>
<DIExpression isString="true" expr="SA_SERVER.SERIALNUMBER" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="SERIALNUMBER" />
</DIExpression>
<DIExpression isString="true" expr="SA_SERVER.SERVERID" >
<COLUMN_REFERENCE  qualifier1="SA_SERVER" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="SERVERID" >
<COLUMN_REFERENCE  column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
<DIExpression isString="true" expr="upper(SERVERID)" >
<FUNCTION_CALL name="upper"  type="DI" >
<COLUMN_REFERENCE  column="SERVERID" />
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="SA_SERVER" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>


<!-- GUID is optional -->
<DITransformCall typeId="210" name="Case_Operation"  >
<DIUIOptions>
<DIAttribute name="CS_VALIDATION_VALIDATION_OFF" value="$P_VALIDATION_IND ='OFF'"/>
<DIAttribute name="CS_VALIDATION_VALIDATION_ON" value="$P_VALIDATION_IND ='ON'"/>
<DIAttribute name="ObjectDesc" value="The case transform CS_VALIDATION routes the data in the dataflow to a validation transform if the variable $P_VALIDATION_IND is on. This variable allows the process to turn validations on and off."/>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_MARK_LATEST"/>
<DIAttribute name="ui_display_name" value="CS_VALIDATION"/>
</DIUIOptions>
<DIInputView name="QRY_MARK_LATEST" />
<DISchema name="CS_VALIDATION" >
</DISchema>
<DICase>
<DISwitch label="VALIDATION_ON" outputView="CS_VALIDATION_VALIDATION_ON" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'ON')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="ON" datatype="VARCHAR" size="2" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
<DISwitch label="VALIDATION_OFF" outputView="CS_VALIDATION_VALIDATION_OFF" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'OFF')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="OFF" datatype="VARCHAR" size="3" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
</DICase>
<DIAttributes>
<DIAttribute name="Mutually_Exclusive" value="no"/>
<DIAttribute name="Preserve_Expression_Order" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Merge" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The merge transformation MRG_PASS_FAIL combines the data streams when validation is on or off.  This allows us to have a single target instance in the data flow."/>
<DIAttribute name="ui_display_name" value="MRG_PASS_FAIL"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_OFF"  />
<DIInputView name="Validation_Pass"  />
<DISchema name="MRG_PASS_FAIL" >
</DISchema>
</DITransformCall>
<DITransformCall typeId="111" name="Validation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The validation transform applies validation rules to specific data fields.  If a record is sourced from the flat file and fails validation, the record will be flagged as invalid and will be loaded into the table {SOURCE TABLE}_VALF."/>
<DIAttribute name="ui_display_name" value="Validation"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_ON"  />
<DISchema name="Validation_Pass" >
</DISchema>
<DISchema name="Validation_Fail" >
</DISchema>
<DIAttributes>
<DIAttribute name="validation_rules" hasNestedXMLTree ="true">
<Rules collectData="false" collectStats="false">
              <Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE" noValidationWhenNull="false">
                <RuleName/>
                <Description/>
                <Expression uiSelection="1">
                  <UIValue1>=</UIValue1>
                  <UIValue2>1</UIValue2>
                  <Custom>CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE = 1</Custom>
                </Expression>
                <Action sendTo="0" substOnFail="false" substValue=""/>
              </Column>
              <Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY" noValidationWhenNull="false">
                <RuleName>BUSINESS KEY IS NULL</RuleName>
                <Description/>
                <Expression uiSelection="6">
                  <UIValue1>IS NOT NULL</UIValue1>
                  <UIValue2/>
                  <Custom>CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY  is not null and CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY &lt;&gt; &apos;&apos;</Custom>
                </Expression>
                <Action sendTo="0" substOnFail="false" substValue=""/>
              </Column>
            </Rules>
</DIAttribute>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Table_Comparison" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Compare SRC_LASTMODDATE to the snapshot table to determine if it is a new record or an update"/>
<DIAttribute name="ui_display_name" value="TC_SA_SERVER_TSNP"/>
</DIUIOptions>
<DIInputView name="QRY_SORT"  />
<DISchema name="SA_SERVER_TSNP" >
</DISchema>
<DIAttributes>
<DIAttribute name="cache_comparison_table" value="no"/>
<DIAttribute name="database_datastore" value="SRCSTAGING_DS"/>
<DIAttribute name="detect_all_dup_deletes" value="no"/>
<DIAttribute name="detect_delete" value="no"/>
<DIAttribute name="primary_key_column1" value="MD_BUSINESS_KEY"/>
<DIAttribute name="primary_key_column2" value="MD_CP_ID"/>
<DIAttribute name="run_as_separate_process" value="no"/>
<DIAttribute name="source_is_sorted" value="yes"/>
<DIAttribute name="table_name" value="SA_SERVER_TSNP"/>
<DIAttribute name="table_owner" value="SRCSTAGING_ALIAS"/>
<DIAttribute name="update_cache" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This map operation filters out all records that are not inserts, and changes the handling of these records from Insert to Normal"/>
<DIAttribute name="ui_display_name" value="MO_INSERT_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_SERVER_TSNP"  />
<DISchema name="MO_INSERT_TO_NORMAL_1" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="normal"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="discard"/>
</DIAttributes>
</DITransformCall>
<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_SERVER_EXT" >
<DIInputView name="Merge"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit/>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>0</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>truncate</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_SERVER_VALF" >
<DIInputView name="QRY_FAIL"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit>1000</bulk_ldr_rows_per_commit>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>1</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>append</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Query the failed records, adding the error, batch, and process information"/>
<DIAttribute name="ui_acta_from_schema_0" value="Validation_Fail"/>
<DIAttribute name="ui_display_name" value="QRY_FAIL"/>
</DIUIOptions>
<DISchema name="QRY_FAIL" >
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DISCOVEREDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.DISCOVEREDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="MANUFACTURE" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.MANUFACTURE"/>
</DIAttributes>
</DIElement>
<DIElement name="MEMORYQUANTITY" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.MEMORYQUANTITY"/>
</DIAttributes>
</DIElement>
<DIElement name="MODEL" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.MODEL"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="NETBIOSNAME" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.NETBIOSNAME"/>
</DIAttributes>
</DIElement>
<DIElement name="OPSLIFECYCLE" datatype="VARCHAR" size="60" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.OPSLIFECYCLE"/>
</DIAttributes>
</DIElement>
<DIElement name="OSVERSION" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.OSVERSION"/>
</DIAttributes>
</DIElement>
<DIElement name="SERIALNUMBER" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.SERIALNUMBER"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORACTION" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.DI_ERRORACTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="ifthenelse(Validation_Fail.MD_BUSINESS_KEY IS NULL OR Validation_Fail.MD_BUSINESS_KEY='', 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING','Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="Validation_Fail.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.DISCOVEREDDATE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="DISCOVEREDDATE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.MANUFACTURE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MANUFACTURE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.MEMORYQUANTITY" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MEMORYQUANTITY" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.MODEL" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MODEL" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.NAME" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.NETBIOSNAME" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="NETBIOSNAME" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.OPSLIFECYCLE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="OPSLIFECYCLE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.OSVERSION" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="OSVERSION" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.SERIALNUMBER" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="SERIALNUMBER" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.SERVERID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.DI_ERRORACTION" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="DI_ERRORACTION" />
</DIExpression>
<DIExpression isString="true" expr="ifthenelse(((Validation_Fail.MD_BUSINESS_KEY IS  NULL ) OR&#xA;   (Validation_Fail.MD_BUSINESS_KEY = '')), 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING', 'Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')" >
<FUNCTION_CALL name="ifthenelse"  type="DI" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="IS NULL">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</LOGICAL_OP>
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
<CONSTANT value="" datatype="VARCHAR" size="0" />
</LOGICAL_OP>
</LOGICAL_OP>
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING" datatype="VARCHAR" size="63" />
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE" datatype="VARCHAR" size="52" />
</FUNCTION_CALL>
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="Validation_Fail" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_SORT_BK"/>
<DIAttribute name="ui_display_name" value="QRY_MARK_LATEST"/>
</DIUIOptions>
<DISchema name="QRY_MARK_LATEST" >
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DISCOVEREDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.DISCOVEREDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="MANUFACTURE" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MANUFACTURE"/>
</DIAttributes>
</DIElement>
<DIElement name="MEMORYQUANTITY" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MEMORYQUANTITY"/>
</DIAttributes>
</DIElement>
<DIElement name="MODEL" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MODEL"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="NETBIOSNAME" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.NETBIOSNAME"/>
</DIAttributes>
</DIElement>
<DIElement name="OPSLIFECYCLE" datatype="VARCHAR" size="60" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.OPSLIFECYCLE"/>
</DIAttributes>
</DIElement>
<DIElement name="OSVERSION" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.OSVERSION"/>
</DIAttributes>
</DIElement>
<DIElement name="SERIALNUMBER" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.SERIALNUMBER"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MARK_DUPLICATE" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="is_group_changed( QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER )"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_SORT_BK.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.DISCOVEREDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="DISCOVEREDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MANUFACTURE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MANUFACTURE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MEMORYQUANTITY" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MEMORYQUANTITY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MODEL" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MODEL" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.NAME" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.NETBIOSNAME" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="NETBIOSNAME" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.OPSLIFECYCLE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="OPSLIFECYCLE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.OSVERSION" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="OSVERSION" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.SERIALNUMBER" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="SERIALNUMBER" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.SERVERID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="is_group_changed(QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER)" >
<FUNCTION_CALL name="is_group_changed"  type="DI" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY_FOR_ORDER" />
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_SORT_BK" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIFileSource typeId="33" formatName="SA_SERVER" filename="$P_DYNAMIC_FILE_NAME" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="&quot;$P_DYNAMIC_FILE_NAME&quot;(SA_SERVER)"/>
</DIUIOptions>
<DIOutputView name="SA_SERVER"  />
<DIAttributes>
<DIAttribute name="adaptable" value="no"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="name" value="SA_SERVER"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_filename_col" value="DI_FILENAME"/>
<DIAttribute name="reader_filename_col_size" value="100"/>
<DIAttribute name="reader_filename_only" value="yes"/>
<DIAttribute name="reader_include_filename" value="no"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$P_DYNAMIC_FILE_LOCATION"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="transfer_custom" value="no"/>
</DIAttributes>
</DIFileSource>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_INSERT_TO_NORMAL_1"/>
<DIAttribute name="ui_display_name" value="QRY_NEW"/>
</DIUIOptions>
<DISchema name="QRY_NEW" >
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DISCOVEREDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.DISCOVEREDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="MANUFACTURE" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MANUFACTURE"/>
</DIAttributes>
</DIElement>
<DIElement name="MEMORYQUANTITY" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MEMORYQUANTITY"/>
</DIAttributes>
</DIElement>
<DIElement name="MODEL" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MODEL"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="NETBIOSNAME" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.NETBIOSNAME"/>
</DIAttributes>
</DIElement>
<DIElement name="OPSLIFECYCLE" datatype="VARCHAR" size="60" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.OPSLIFECYCLE"/>
</DIAttributes>
</DIElement>
<DIElement name="OSVERSION" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.OSVERSION"/>
</DIAttributes>
</DIElement>
<DIElement name="SERIALNUMBER" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.SERIALNUMBER"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_NEW "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.DISCOVEREDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="DISCOVEREDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MANUFACTURE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MANUFACTURE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MEMORYQUANTITY" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MEMORYQUANTITY" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MODEL" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MODEL" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.NAME" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.NETBIOSNAME" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="NETBIOSNAME" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.OPSLIFECYCLE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="OPSLIFECYCLE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.OSVERSION" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="OSVERSION" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.SERIALNUMBER" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="SERIALNUMBER" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.SERVERID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_NEW" >
<VARIABLE_REFERENCE name="$G_FLAG_NEW" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_INSERT_TO_NORMAL_1" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MRG_PASS_FAIL"/>
<DIAttribute name="ui_display_name" value="QRY_SORT"/>
<DIAttribute name="ui_where_text" value="MRG_PASS_FAIL.MARK_DUPLICATE=1"/>
</DIUIOptions>
<DISchema name="QRY_SORT" >
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DISCOVEREDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.DISCOVEREDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="MANUFACTURE" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MANUFACTURE"/>
</DIAttributes>
</DIElement>
<DIElement name="MEMORYQUANTITY" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MEMORYQUANTITY"/>
</DIAttributes>
</DIElement>
<DIElement name="MODEL" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MODEL"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="NETBIOSNAME" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.NETBIOSNAME"/>
</DIAttributes>
</DIElement>
<DIElement name="OPSLIFECYCLE" datatype="VARCHAR" size="60" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.OPSLIFECYCLE"/>
</DIAttributes>
</DIElement>
<DIElement name="OSVERSION" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.OSVERSION"/>
</DIAttributes>
</DIElement>
<DIElement name="SERIALNUMBER" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.SERIALNUMBER"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MRG_PASS_FAIL.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.DISCOVEREDDATE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="DISCOVEREDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MANUFACTURE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MANUFACTURE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MEMORYQUANTITY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MEMORYQUANTITY" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MODEL" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MODEL" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.NAME" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.NETBIOSNAME" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="NETBIOSNAME" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.OPSLIFECYCLE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="OPSLIFECYCLE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.OSVERSION" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="OSVERSION" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.SERIALNUMBER" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="SERIALNUMBER" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.SERVERID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MRG_PASS_FAIL" />
</DIFrom>
<DIWhere>
<DIExpression isString="true" expr="(MRG_PASS_FAIL.MARK_DUPLICATE = 1)" >
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MARK_DUPLICATE" />
<CONSTANT value="1" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
</DIWhere>
<DIOrderBys>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_EXTRACT"/>
<DIAttribute name="ui_display_name" value="QRY_SORT_BK"/>
</DIUIOptions>
<DISchema name="QRY_SORT_BK" >
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DISCOVEREDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.DISCOVEREDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="MANUFACTURE" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MANUFACTURE"/>
</DIAttributes>
</DIElement>
<DIElement name="MEMORYQUANTITY" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MEMORYQUANTITY"/>
</DIAttributes>
</DIElement>
<DIElement name="MODEL" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MODEL"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="NETBIOSNAME" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.NETBIOSNAME"/>
</DIAttributes>
</DIElement>
<DIElement name="OPSLIFECYCLE" datatype="VARCHAR" size="60" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.OPSLIFECYCLE"/>
</DIAttributes>
</DIElement>
<DIElement name="OSVERSION" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.OSVERSION"/>
</DIAttributes>
</DIElement>
<DIElement name="SERIALNUMBER" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.SERIALNUMBER"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_EXTRACT.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.DISCOVEREDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="DISCOVEREDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MANUFACTURE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MANUFACTURE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MEMORYQUANTITY" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MEMORYQUANTITY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MODEL" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MODEL" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.NAME" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.NETBIOSNAME" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="NETBIOSNAME" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.OPSLIFECYCLE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="OPSLIFECYCLE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.OSVERSION" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="OSVERSION" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.SERIALNUMBER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="SERIALNUMBER" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.SERVERID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_EXTRACT" />
</DIFrom>
<DIOrderBys>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MODIFIEDDATE" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="MO_UPDATE_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_SERVER_TSNP"  />
<DISchema name="MO_UPDATE_TO_NORMAL" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="discard"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="normal"/>
</DIAttributes>
</DITransformCall>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_UPDATE_TO_NORMAL"/>
<DIAttribute name="ui_display_name" value="QRY_UPDATE"/>
</DIUIOptions>
<DISchema name="QRY_UPDATE" >
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DISCOVEREDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.DISCOVEREDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="MANUFACTURE" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MANUFACTURE"/>
</DIAttributes>
</DIElement>
<DIElement name="MEMORYQUANTITY" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MEMORYQUANTITY"/>
</DIAttributes>
</DIElement>
<DIElement name="MODEL" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MODEL"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="NETBIOSNAME" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.NETBIOSNAME"/>
</DIAttributes>
</DIElement>
<DIElement name="OPSLIFECYCLE" datatype="VARCHAR" size="60" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.OPSLIFECYCLE"/>
</DIAttributes>
</DIElement>
<DIElement name="OSVERSION" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.OSVERSION"/>
</DIAttributes>
</DIElement>
<DIElement name="SERIALNUMBER" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.SERIALNUMBER"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_UPDATE "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.DISCOVEREDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="DISCOVEREDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MANUFACTURE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MANUFACTURE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MEMORYQUANTITY" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MEMORYQUANTITY" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MODEL" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MODEL" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.NAME" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.NETBIOSNAME" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="NETBIOSNAME" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.OPSLIFECYCLE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="OPSLIFECYCLE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.OSVERSION" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="OSVERSION" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.SERIALNUMBER" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="SERIALNUMBER" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.SERVERID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_UPDATE" >
<VARIABLE_REFERENCE name="$G_FLAG_UPDATE" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_UPDATE_TO_NORMAL" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Merge" >
<DIInputView name="QRY_NEW"  />
<DIInputView name="QRY_UPDATE"  />
<DISchema name="Merge" >
</DISchema>
</DITransformCall>
</DITransforms>
<DIAttributes>
<DIAttribute name="Cache_type" value="pageable_cache"/>
<DIAttribute name="Parallelism_degree" value="0"/>
<DIAttribute name="allows_both_input_and_output" value="yes"/>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="use_dataflow_links" value="no"/>
<DIAttribute name="use_datastore_links" value="yes"/>
<DIAttribute name="validation_xform_exists" value="yes"/>
<DIAttribute name="validation_xform_stats" value="no"/>
</DIAttributes>
</DIDataflow>
<DIWorkflow name="SA_POLICY_FF_EXT_WF" typeId="2" >
<DIProperties>
<DIAttribute name="Description" value="This workflow is responsible for loading the delta records found in the flat file extracts into the EXT tables."/>
</DIProperties>
<DIVariables>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_TABLE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_WF_NAME" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_MAX_WF_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_LATEST_WF_STATUS" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_SOURCE_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
</DIVariables>
<DISteps>
<DITryStep typeId="13" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The Try of the Try / Catch Block"/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_TRY"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that initiates the metadata tracking for the workflow. The script will also be used to populate the local workflow variables."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_START_SC"/>
<DIAttribute name="ui_script_text" value="#WORKFLOW NAME&#xD;&#xA;$L_WF_NAME = workflow_name()||$G_CONTENT_PACK_ID;&#xD;&#xA;&#xD;&#xA;# GET MAX PROCESS_ID OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID&#xD;&#xA;$L_MAX_WF_PROCESS_ID=M_ICPS_GET_MAX_WF_PROCESS_ID($G_BATCH_ID,$L_WF_NAME,job_name( ));&#xD;&#xA;&#xD;&#xA;# GET LAST EXECUTION STATUS OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID, ACCORDING TO MAX PROCESS_ID&#xD;&#xA;$L_LATEST_WF_STATUS =M_ICPS_GET_WF_STATUS($L_MAX_WF_PROCESS_ID,$L_WF_NAME );&#xD;&#xA;&#xD;&#xA;# CALL FUNCTION TO TRACK START OF WORKFLOW&#xD;&#xA;ABC_STARTWF_FN($L_WF_NAME, $G_PROCESS_ID);&#xD;&#xA;&#xD;&#xA;# ASSIGN TABLE NAME VALUE TO BE USED TO LOOKUP THE VALIDATION_STATUS ON THE VALIDATION REFERENCE TABLE AS NECESSARY&#xD;&#xA;$L_ENTITY_NAME ='POLICY';&#xD;&#xA;$L_TABLE_NAME = $G_PRODUCT_NAME ||'_'||$L_ENTITY_NAME ;&#xD;&#xA;$L_VALIDATION_IND = GET_VALIDATION_STATUS_FN($G_ENABLE_VAL, $L_TABLE_NAME);&#xD;&#xA;&#xD;&#xA;# CLEAN PREIOUSLY LOADED DATA FROM DB TABLE, FOR CASES OF RE-RUN AFTER FAILURE&#xD;&#xA;if ($L_MAX_WF_PROCESS_ID is not null and $L_LATEST_WF_STATUS &lt;&gt; 'SUCCESS')&#xD;&#xA;begin&#xD;&#xA;&#x9;M_ICPS_RERUN_CLEANUP ( $L_TABLE_NAME ||'_EXT',$G_BATCH_ID , $L_MAX_WF_PROCESS_ID ,$G_CONTENT_PACK_ID);&#xD;&#xA;end &#xD;&#xA;&#xD;&#xA;# ASSIGN FILE NAME AND FILE LOCATION VALUES&#xD;&#xA;$L_SOURCE_ENTITY_NAME= METADATA_GET_SOURCE_ENTITY_NAME($L_ENTITY_NAME);&#xD;&#xA;&#xD;&#xA;$L_DYNAMIC_FILE_LOCATION = $G_SA_FILELOCATION ;&#xD;&#xA;$L_DYNAMIC_FILE_NAME = $G_PRODUCT_NAME||'_'||$L_SOURCE_ENTITY_NAME||'_'||$G_CONTENT_PACK_ID||'_EXTRACT_FF.TXT';&#xD;&#xA;&#xD;&#xA;# PRINT PARAMETERS USED BASED ON TRACE MODE&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;ETL_PRINT('This EXT Process will read any file named '||$L_DYNAMIC_FILE_NAME); &#xD;&#xA;ETL_PRINT('The File is located in the '||$L_DYNAMIC_FILE_LOCATION||' directory.' );&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
</DIUIOptions>
<DIAssignmentStep typeId="12" variable="$L_WF_NAME" >
<DIExpression isString="true" expr="(workflow_name() || $G_CONTENT_PACK_ID)" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_MAX_WF_PROCESS_ID" >
<DIExpression isString="true" expr="m_icps_get_max_wf_process_id($G_BATCH_ID, $L_WF_NAME, job_name())" >
<FUNCTION_CALL name="m_icps_get_max_wf_process_id"  type="DI" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<FUNCTION_CALL name="job_name"  type="DI" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_LATEST_WF_STATUS" >
<DIExpression isString="true" expr="m_icps_get_wf_status($L_MAX_WF_PROCESS_ID, $L_WF_NAME)" >
<FUNCTION_CALL name="m_icps_get_wf_status"  type="DI" >
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_startwf_fn($L_WF_NAME, $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_startwf_fn"  type="DI" >
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$L_ENTITY_NAME" >
<DIExpression isString="true" expr="'POLICY'" >
<CONSTANT value="POLICY" datatype="VARCHAR" size="6" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_TABLE_NAME" >
<DIExpression isString="true" expr="(($G_PRODUCT_NAME || '_') || $L_ENTITY_NAME)" >
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_VALIDATION_IND" >
<DIExpression isString="true" expr="get_validation_status_fn($G_ENABLE_VAL, $L_TABLE_NAME)" >
<FUNCTION_CALL name="get_validation_status_fn"  type="DI" >
<VARIABLE_REFERENCE name="$G_ENABLE_VAL" />
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(($L_MAX_WF_PROCESS_ID IS NOT  NULL ) AND&#xA;   ($L_LATEST_WF_STATUS != 'SUCCESS'))" >
<LOGICAL_OP op="AND">
<LOGICAL_OP op="IS NOT NULL">
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
</LOGICAL_OP>
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="m_icps_rerun_cleanup(($L_TABLE_NAME || '_EXT'), $G_BATCH_ID, $L_MAX_WF_PROCESS_ID, $G_CONTENT_PACK_ID)" >
<FUNCTION_CALL name="m_icps_rerun_cleanup"  type="DI" >
<CONCAT>
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
<CONSTANT value="_EXT" datatype="VARCHAR" size="4" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
<DIElse>
</DIElse>
</DIIfStep>
<DIAssignmentStep typeId="12" variable="$L_SOURCE_ENTITY_NAME" >
<DIExpression isString="true" expr="metadata_get_source_entity_name($L_ENTITY_NAME)" >
<FUNCTION_CALL name="metadata_get_source_entity_name"  type="DI" >
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_LOCATION" >
<DIExpression isString="true" expr="$G_SA_FILELOCATION" >
<VARIABLE_REFERENCE name="$G_SA_FILELOCATION" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_NAME" >
<DIExpression isString="true" expr="((((($G_PRODUCT_NAME || '_') || $L_SOURCE_ENTITY_NAME) || '_') || $G_CONTENT_PACK_ID) || '_EXTRACT_FF.TXT')" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_SOURCE_ENTITY_NAME" />
</CONCAT>
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<CONSTANT value="_EXTRACT_FF.TXT" datatype="VARCHAR" size="15" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('This EXT Process will read any file named ' || $L_DYNAMIC_FILE_NAME))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="This EXT Process will read any file named " datatype="VARCHAR" size="42" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('The File is located in the ' || $L_DYNAMIC_FILE_LOCATION) || ' directory.'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="The File is located in the " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</CONCAT>
<CONSTANT value=" directory." datatype="VARCHAR" size="11" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
<DIIfStep typeId="2" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="If_condition" value="$L_LATEST_WF_STATUS&lt;&gt;'SUCCESS' or $L_LATEST_WF_STATUS is null"/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_CONDITION"/>
</DIUIOptions>
<DIExpression isString="true" expr="(($L_LATEST_WF_STATUS != 'SUCCESS') OR&#xA;   ($L_LATEST_WF_STATUS IS  NULL ))" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DICallStep typeId="1"  calledObjectType="Dataflow" name="SA_POLICY_FF_EXT_DF" >
<DIUIOptions>
<DIAttribute name="ParmDefaulted_01" value="FALSE"/>
<DIAttribute name="ParmDefaulted_02" value="FALSE"/>
<DIAttribute name="ParmDefaulted_03" value="FALSE"/>
</DIUIOptions>
<DIParameterValues>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_NAME" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</DIExpression>
<DIExpression isString="true" expr="$L_VALIDATION_IND" >
<VARIABLE_REFERENCE name="$L_VALIDATION_IND" />
</DIExpression>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_LOCATION" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</DIExpression>
</DIParameterValues>
</DICallStep>
</DIIf>
<DIElse>
<DIScript>
<DIUIOptions>
<DIAttribute name="ui_display_name" value="SA_POLICY_EXIT_SCRIPT"/>
<DIAttribute name="ui_script_text" value="ETL_PRINT('PREVIOS RUN OF WORKFLOW &gt;&gt; '||$L_WF_NAME||' FOR BATCH ID &gt;&gt; '||$G_BATCH_ID||' HAS FINISHED SUCCESSFULLY!');"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((((('PREVIOS RUN OF WORKFLOW &gt;&gt; ' || $L_WF_NAME) || ' FOR BATCH ID &gt;&gt; ') || $G_BATCH_ID) || ' HAS FINISHED SUCCESSFULLY!'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="PREVIOS RUN OF WORKFLOW &gt;&gt; " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</CONCAT>
<CONSTANT value=" FOR BATCH ID &gt;&gt; " datatype="VARCHAR" size="17" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</CONCAT>
<CONSTANT value=" HAS FINISHED SUCCESSFULLY!" datatype="VARCHAR" size="27" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DIElse>
</DIIfStep>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This script that calls the custom function that closes the metadata records that are part of tracking the workflow process."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_END_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK END OF WORKFLOW&#xD;&#xA;ABC_ENDWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID);"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_endwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_endwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
<DICatch typeId="20" errorCode="210101" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The workflow catch object is the end of the TRY/CATCH block in BO DS.  This catch block contains the script object that calls a custom fail workflow function used to write the metadata for failed jobs."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_CATCH"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that is used to write the metadata for failed workflows."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_FAIL_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK FAIL OF WORKFLOW&#xD;&#xA;ABC_FAILWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID, 'Error: \[' || error_number() || '\] ' || error_message());"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_failwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID, ((('Error: \\[' || error_number()) || '\\] ') || error_message()))" >
<FUNCTION_CALL name="abc_failwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="Error: \[" datatype="VARCHAR" size="9" />
<FUNCTION_CALL name="error_number"  type="DI" />
</CONCAT>
<CONSTANT value="\] " datatype="VARCHAR" size="3" />
</CONCAT>
<FUNCTION_CALL name="error_message"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
</DICatch>
</DITryStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIDataflow name="SA_POLICY_FF_EXT_DF" typeId="1" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Description" value="The dataflow that loads delta data from the flat file extracts into the EXT tables.  The data structure of the EXT tables will be the same as the flat file extracts.  All data will be sourced from the flat files.  The data that is sourced will be processed through a validation transformation when possible to make sure that data is usable.  All data that is determined to be not processable will be loaded into the table VALF tables.  VALF tables contain only those records which failed the validation check and were deemed unusable."/>
</DIProperties>
<DIParameters>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$P_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="255" >
</DIElement>
</DIParameters>
<DITransforms>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The query transform QRY_EXTRACT sources data from the specific flat file.  All data from the source file is pulled into the data flow."/>
<DIAttribute name="ui_acta_from_schema_0" value="SA_POLICY"/>
<DIAttribute name="ui_display_name" value="QRY_EXTRACT"/>
</DIUIOptions>
<DISchema name="QRY_EXTRACT" >
<DIElement name="CATEGORY" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY.CATEGORY"/>
</DIAttributes>
</DIElement>
<DIElement name="CREATEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY.CREATEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="POLICYID||':'||CATEGORY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="upper(POLICYID||':'||CATEGORY)"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="SA_POLICY.CATEGORY" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY" column="CATEGORY" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY.CREATEDDATE" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY" column="CREATEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY.NAME" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY.POLICYID" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="((POLICYID || ':') || CATEGORY)" >
<CONCAT>
<CONCAT>
<COLUMN_REFERENCE  column="POLICYID" />
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="CATEGORY" />
</CONCAT>
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
<DIExpression isString="true" expr="upper(((POLICYID || ':') || CATEGORY))" >
<FUNCTION_CALL name="upper"  type="DI" >
<CONCAT>
<CONCAT>
<COLUMN_REFERENCE  column="POLICYID" />
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="CATEGORY" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="SA_POLICY" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>


<!-- GUID is optional -->
<DITransformCall typeId="210" name="Case_Operation"  >
<DIUIOptions>
<DIAttribute name="CS_VALIDATION_VALIDATION_OFF" value="$P_VALIDATION_IND ='OFF'"/>
<DIAttribute name="CS_VALIDATION_VALIDATION_ON" value="$P_VALIDATION_IND ='ON'"/>
<DIAttribute name="ObjectDesc" value="The case transform CS_VALIDATION routes the data in the dataflow to a validation transform if the variable $P_VALIDATION_IND is on. This variable allows the process to turn validations on and off."/>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_MARK_LATEST"/>
<DIAttribute name="ui_display_name" value="CS_VALIDATION"/>
</DIUIOptions>
<DIInputView name="QRY_MARK_LATEST" />
<DISchema name="CS_VALIDATION" >
</DISchema>
<DICase>
<DISwitch label="VALIDATION_ON" outputView="CS_VALIDATION_VALIDATION_ON" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'ON')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="ON" datatype="VARCHAR" size="2" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
<DISwitch label="VALIDATION_OFF" outputView="CS_VALIDATION_VALIDATION_OFF" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'OFF')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="OFF" datatype="VARCHAR" size="3" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
</DICase>
<DIAttributes>
<DIAttribute name="Mutually_Exclusive" value="no"/>
<DIAttribute name="Preserve_Expression_Order" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Merge" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The merge transformation MRG_PASS_FAIL combines the data streams when validation is on or off.  This allows us to have a single target instance in the data flow."/>
<DIAttribute name="ui_display_name" value="MRG_PASS_FAIL"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_OFF"  />
<DIInputView name="Validation_Pass"  />
<DISchema name="MRG_PASS_FAIL" >
</DISchema>
</DITransformCall>
<DITransformCall typeId="111" name="Validation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The validation transform applies validation rules to specific data fields.  If a record is sourced from the flat file and fails validation, the record will be flagged as invalid and will be loaded into the table {SOURCE TABLE}_VALF."/>
<DIAttribute name="ui_display_name" value="Validation"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_ON"  />
<DISchema name="Validation_Pass" >
</DISchema>
<DISchema name="Validation_Fail" >
</DISchema>
<DIAttributes>
<DIAttribute name="validation_rules" hasNestedXMLTree ="true">
<Rules collectData="false" collectStats="false">
              <Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE" noValidationWhenNull="false">
                <RuleName/>
                <Description/>
                <Expression uiSelection="1">
                  <UIValue1>=</UIValue1>
                  <UIValue2>1</UIValue2>
                  <Custom>CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE = 1</Custom>
                </Expression>
                <Action sendTo="0" substOnFail="false" substValue=""/>
              </Column>
              <Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY" noValidationWhenNull="false">
                <RuleName>BUSINESS KEY IS NULL</RuleName>
                <Description/>
                <Expression uiSelection="6">
                  <UIValue1>IS NOT NULL</UIValue1>
                  <UIValue2/>
                  <Custom>CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY  is not null and CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY &lt;&gt; &apos;&apos;</Custom>
                </Expression>
                <Action sendTo="0" substOnFail="false" substValue=""/>
              </Column>
            </Rules>
</DIAttribute>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Table_Comparison" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Compare SRC_LASTMODDATE to the snapshot table to determine if it is a new record or an update"/>
<DIAttribute name="ui_display_name" value="TC_SA_POLICY_TSNP"/>
</DIUIOptions>
<DIInputView name="QRY_SORT"  />
<DISchema name="SA_POLICY_TSNP" >
</DISchema>
<DIAttributes>
<DIAttribute name="cache_comparison_table" value="no"/>
<DIAttribute name="database_datastore" value="SRCSTAGING_DS"/>
<DIAttribute name="detect_all_dup_deletes" value="no"/>
<DIAttribute name="detect_delete" value="no"/>
<DIAttribute name="primary_key_column1" value="MD_BUSINESS_KEY"/>
<DIAttribute name="primary_key_column2" value="MD_CP_ID"/>
<DIAttribute name="run_as_separate_process" value="no"/>
<DIAttribute name="source_is_sorted" value="yes"/>
<DIAttribute name="table_name" value="SA_POLICY_TSNP"/>
<DIAttribute name="table_owner" value="SRCSTAGING_ALIAS"/>
<DIAttribute name="update_cache" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This map operation filters out all records that are not inserts, and changes the handling of these records from Insert to Normal"/>
<DIAttribute name="ui_display_name" value="MO_INSERT_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_POLICY_TSNP"  />
<DISchema name="MO_INSERT_TO_NORMAL_1" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="normal"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="discard"/>
</DIAttributes>
</DITransformCall>
<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_POLICY_EXT" >
<DIInputView name="Merge"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit/>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>0</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>truncate</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_POLICY_VALF" >
<DIInputView name="QRY_FAIL"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit>1000</bulk_ldr_rows_per_commit>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>1</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>append</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Query the failed records, adding the error, batch, and process information"/>
<DIAttribute name="ui_acta_from_schema_0" value="Validation_Fail"/>
<DIAttribute name="ui_display_name" value="QRY_FAIL"/>
</DIUIOptions>
<DISchema name="QRY_FAIL" >
<DIElement name="CATEGORY" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.CATEGORY"/>
</DIAttributes>
</DIElement>
<DIElement name="CREATEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.CREATEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORACTION" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.DI_ERRORACTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="ifthenelse(Validation_Fail.MD_BUSINESS_KEY IS NULL OR Validation_Fail.MD_BUSINESS_KEY='', 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING','Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="Validation_Fail.CATEGORY" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="CATEGORY" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.CREATEDDATE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="CREATEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.NAME" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.POLICYID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.DI_ERRORACTION" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="DI_ERRORACTION" />
</DIExpression>
<DIExpression isString="true" expr="ifthenelse(((Validation_Fail.MD_BUSINESS_KEY IS  NULL ) OR&#xA;   (Validation_Fail.MD_BUSINESS_KEY = '')), 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING', 'Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')" >
<FUNCTION_CALL name="ifthenelse"  type="DI" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="IS NULL">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</LOGICAL_OP>
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
<CONSTANT value="" datatype="VARCHAR" size="0" />
</LOGICAL_OP>
</LOGICAL_OP>
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING" datatype="VARCHAR" size="63" />
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE" datatype="VARCHAR" size="52" />
</FUNCTION_CALL>
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="Validation_Fail" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_SORT_BK"/>
<DIAttribute name="ui_display_name" value="QRY_MARK_LATEST"/>
</DIUIOptions>
<DISchema name="QRY_MARK_LATEST" >
<DIElement name="CATEGORY" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.CATEGORY"/>
</DIAttributes>
</DIElement>
<DIElement name="CREATEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.CREATEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MARK_DUPLICATE" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="is_group_changed( QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER )"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_SORT_BK.CATEGORY" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="CATEGORY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.CREATEDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="CREATEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.NAME" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.POLICYID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="is_group_changed(QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER)" >
<FUNCTION_CALL name="is_group_changed"  type="DI" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY_FOR_ORDER" />
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_SORT_BK" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIFileSource typeId="33" formatName="SA_POLICY" filename="$P_DYNAMIC_FILE_NAME" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="&quot;$P_DYNAMIC_FILE_NAME&quot;(SA_POLICY)"/>
</DIUIOptions>
<DIOutputView name="SA_POLICY"  />
<DIAttributes>
<DIAttribute name="adaptable" value="no"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="name" value="SA_POLICY"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_filename_col" value="DI_FILENAME"/>
<DIAttribute name="reader_filename_col_size" value="100"/>
<DIAttribute name="reader_filename_only" value="yes"/>
<DIAttribute name="reader_include_filename" value="no"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$P_DYNAMIC_FILE_LOCATION"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="transfer_custom" value="no"/>
</DIAttributes>
</DIFileSource>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_INSERT_TO_NORMAL_1"/>
<DIAttribute name="ui_display_name" value="QRY_NEW"/>
</DIUIOptions>
<DISchema name="QRY_NEW" >
<DIElement name="CATEGORY" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.CATEGORY"/>
</DIAttributes>
</DIElement>
<DIElement name="CREATEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.CREATEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_NEW "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.CATEGORY" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="CATEGORY" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.CREATEDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="CREATEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.NAME" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.POLICYID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_NEW" >
<VARIABLE_REFERENCE name="$G_FLAG_NEW" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_INSERT_TO_NORMAL_1" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MRG_PASS_FAIL"/>
<DIAttribute name="ui_display_name" value="QRY_SORT"/>
<DIAttribute name="ui_where_text" value="MRG_PASS_FAIL.MARK_DUPLICATE=1"/>
</DIUIOptions>
<DISchema name="QRY_SORT" >
<DIElement name="CATEGORY" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.CATEGORY"/>
</DIAttributes>
</DIElement>
<DIElement name="CREATEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.CREATEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MRG_PASS_FAIL.CATEGORY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="CATEGORY" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.CREATEDDATE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="CREATEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.NAME" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.POLICYID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MRG_PASS_FAIL" />
</DIFrom>
<DIWhere>
<DIExpression isString="true" expr="(MRG_PASS_FAIL.MARK_DUPLICATE = 1)" >
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MARK_DUPLICATE" />
<CONSTANT value="1" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
</DIWhere>
<DIOrderBys>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_EXTRACT"/>
<DIAttribute name="ui_display_name" value="QRY_SORT_BK"/>
</DIUIOptions>
<DISchema name="QRY_SORT_BK" >
<DIElement name="CATEGORY" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.CATEGORY"/>
</DIAttributes>
</DIElement>
<DIElement name="CREATEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.CREATEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_EXTRACT.CATEGORY" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="CATEGORY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.CREATEDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="CREATEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.NAME" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.POLICYID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_EXTRACT" />
</DIFrom>
<DIOrderBys>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MODIFIEDDATE" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="MO_UPDATE_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_POLICY_TSNP"  />
<DISchema name="MO_UPDATE_TO_NORMAL" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="discard"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="normal"/>
</DIAttributes>
</DITransformCall>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_UPDATE_TO_NORMAL"/>
<DIAttribute name="ui_display_name" value="QRY_UPDATE"/>
</DIUIOptions>
<DISchema name="QRY_UPDATE" >
<DIElement name="CATEGORY" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.CATEGORY"/>
</DIAttributes>
</DIElement>
<DIElement name="CREATEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.CREATEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_UPDATE "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.CATEGORY" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="CATEGORY" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.CREATEDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="CREATEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.NAME" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.POLICYID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_UPDATE" >
<VARIABLE_REFERENCE name="$G_FLAG_UPDATE" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_UPDATE_TO_NORMAL" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Merge" >
<DIInputView name="QRY_NEW"  />
<DIInputView name="QRY_UPDATE"  />
<DISchema name="Merge" >
</DISchema>
</DITransformCall>
</DITransforms>
<DIAttributes>
<DIAttribute name="Cache_type" value="pageable_cache"/>
<DIAttribute name="Parallelism_degree" value="0"/>
<DIAttribute name="allows_both_input_and_output" value="yes"/>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="use_dataflow_links" value="no"/>
<DIAttribute name="use_datastore_links" value="yes"/>
<DIAttribute name="validation_xform_exists" value="yes"/>
<DIAttribute name="validation_xform_stats" value="no"/>
</DIAttributes>
</DIDataflow>
<DIWorkflow name="SA_JOB_ACTION_FF_EXT_WF" typeId="2" >
<DIProperties>
<DIAttribute name="Description" value="This workflow is responsible for loading the delta records found in the flat file extracts into the EXT tables."/>
</DIProperties>
<DIVariables>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_TABLE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_WF_NAME" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_MAX_WF_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_LATEST_WF_STATUS" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_SOURCE_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
</DIVariables>
<DISteps>
<DITryStep typeId="13" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The Try of the Try / Catch Block"/>
<DIAttribute name="ui_display_name" value="SA_JOB_ACTION_FF_EXT_TRY"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that initiates the metadata tracking for the workflow. The script will also be used to populate the local workflow variables."/>
<DIAttribute name="ui_display_name" value="SA_JOB_ACTION_FF_EXT_START_SC"/>
<DIAttribute name="ui_script_text" value="#WORKFLOW NAME&#xD;&#xA;$L_WF_NAME = workflow_name()||$G_CONTENT_PACK_ID;&#xD;&#xA;&#xD;&#xA;# GET MAX PROCESS_ID OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID&#xD;&#xA;$L_MAX_WF_PROCESS_ID=M_ICPS_GET_MAX_WF_PROCESS_ID($G_BATCH_ID,$L_WF_NAME,job_name( ));&#xD;&#xA;&#xD;&#xA;# GET LAST EXECUTION STATUS OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID, ACCORDING TO MAX PROCESS_ID&#xD;&#xA;$L_LATEST_WF_STATUS =M_ICPS_GET_WF_STATUS($L_MAX_WF_PROCESS_ID,$L_WF_NAME );&#xD;&#xA;&#xD;&#xA;# CALL FUNCTION TO TRACK START OF WORKFLOW&#xD;&#xA;ABC_STARTWF_FN($L_WF_NAME, $G_PROCESS_ID);&#xD;&#xA;&#xD;&#xA;# ASSIGN TABLE NAME VALUE TO BE USED TO LOOKUP THE VALIDATION_STATUS ON THE VALIDATION REFERENCE TABLE AS NECESSARY&#xD;&#xA;$L_ENTITY_NAME ='JOB_ACTION';&#xD;&#xA;$L_TABLE_NAME = $G_PRODUCT_NAME ||'_'||$L_ENTITY_NAME ;&#xD;&#xA;$L_VALIDATION_IND = GET_VALIDATION_STATUS_FN($G_ENABLE_VAL, $L_TABLE_NAME);&#xD;&#xA;&#xD;&#xA;# CLEAN PREIOUSLY LOADED DATA FROM DB TABLE, FOR CASES OF RE-RUN AFTER FAILURE&#xD;&#xA;if ($L_MAX_WF_PROCESS_ID is not null and $L_LATEST_WF_STATUS &lt;&gt; 'SUCCESS')&#xD;&#xA;begin&#xD;&#xA;&#x9;M_ICPS_RERUN_CLEANUP ( $L_TABLE_NAME ||'_EXT',$G_BATCH_ID , $L_MAX_WF_PROCESS_ID ,$G_CONTENT_PACK_ID);&#xD;&#xA;end &#xD;&#xA;&#xD;&#xA;# ASSIGN FILE NAME AND FILE LOCATION VALUES&#xD;&#xA;$L_SOURCE_ENTITY_NAME= METADATA_GET_SOURCE_ENTITY_NAME($L_ENTITY_NAME);&#xD;&#xA;&#xD;&#xA;$L_DYNAMIC_FILE_LOCATION = $G_SA_FILELOCATION ;&#xD;&#xA;$L_DYNAMIC_FILE_NAME = $G_PRODUCT_NAME||'_'||$L_SOURCE_ENTITY_NAME||'_'||$G_CONTENT_PACK_ID||'_EXTRACT_FF.TXT';&#xD;&#xA;&#xD;&#xA;# PRINT PARAMETERS USED BASED ON TRACE MODE&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;ETL_PRINT('This EXT Process will read any file named '||$L_DYNAMIC_FILE_NAME); &#xD;&#xA;ETL_PRINT('The File is located in the '||$L_DYNAMIC_FILE_LOCATION||' directory.' );&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
</DIUIOptions>
<DIAssignmentStep typeId="12" variable="$L_WF_NAME" >
<DIExpression isString="true" expr="(workflow_name() || $G_CONTENT_PACK_ID)" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_MAX_WF_PROCESS_ID" >
<DIExpression isString="true" expr="m_icps_get_max_wf_process_id($G_BATCH_ID, $L_WF_NAME, job_name())" >
<FUNCTION_CALL name="m_icps_get_max_wf_process_id"  type="DI" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<FUNCTION_CALL name="job_name"  type="DI" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_LATEST_WF_STATUS" >
<DIExpression isString="true" expr="m_icps_get_wf_status($L_MAX_WF_PROCESS_ID, $L_WF_NAME)" >
<FUNCTION_CALL name="m_icps_get_wf_status"  type="DI" >
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_startwf_fn($L_WF_NAME, $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_startwf_fn"  type="DI" >
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$L_ENTITY_NAME" >
<DIExpression isString="true" expr="'JOB_ACTION'" >
<CONSTANT value="JOB_ACTION" datatype="VARCHAR" size="10" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_TABLE_NAME" >
<DIExpression isString="true" expr="(($G_PRODUCT_NAME || '_') || $L_ENTITY_NAME)" >
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_VALIDATION_IND" >
<DIExpression isString="true" expr="get_validation_status_fn($G_ENABLE_VAL, $L_TABLE_NAME)" >
<FUNCTION_CALL name="get_validation_status_fn"  type="DI" >
<VARIABLE_REFERENCE name="$G_ENABLE_VAL" />
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(($L_MAX_WF_PROCESS_ID IS NOT  NULL ) AND&#xA;   ($L_LATEST_WF_STATUS != 'SUCCESS'))" >
<LOGICAL_OP op="AND">
<LOGICAL_OP op="IS NOT NULL">
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
</LOGICAL_OP>
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="m_icps_rerun_cleanup(($L_TABLE_NAME || '_EXT'), $G_BATCH_ID, $L_MAX_WF_PROCESS_ID, $G_CONTENT_PACK_ID)" >
<FUNCTION_CALL name="m_icps_rerun_cleanup"  type="DI" >
<CONCAT>
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
<CONSTANT value="_EXT" datatype="VARCHAR" size="4" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
<DIElse>
</DIElse>
</DIIfStep>
<DIAssignmentStep typeId="12" variable="$L_SOURCE_ENTITY_NAME" >
<DIExpression isString="true" expr="metadata_get_source_entity_name($L_ENTITY_NAME)" >
<FUNCTION_CALL name="metadata_get_source_entity_name"  type="DI" >
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_LOCATION" >
<DIExpression isString="true" expr="$G_SA_FILELOCATION" >
<VARIABLE_REFERENCE name="$G_SA_FILELOCATION" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_NAME" >
<DIExpression isString="true" expr="((((($G_PRODUCT_NAME || '_') || $L_SOURCE_ENTITY_NAME) || '_') || $G_CONTENT_PACK_ID) || '_EXTRACT_FF.TXT')" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_SOURCE_ENTITY_NAME" />
</CONCAT>
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<CONSTANT value="_EXTRACT_FF.TXT" datatype="VARCHAR" size="15" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('This EXT Process will read any file named ' || $L_DYNAMIC_FILE_NAME))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="This EXT Process will read any file named " datatype="VARCHAR" size="42" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('The File is located in the ' || $L_DYNAMIC_FILE_LOCATION) || ' directory.'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="The File is located in the " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</CONCAT>
<CONSTANT value=" directory." datatype="VARCHAR" size="11" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
<DIIfStep typeId="2" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="If_condition" value="$L_LATEST_WF_STATUS&lt;&gt;'SUCCESS' or $L_LATEST_WF_STATUS is null"/>
<DIAttribute name="ui_display_name" value="SA_JOB_ACTION_FF_EXT_CONDITION"/>
</DIUIOptions>
<DIExpression isString="true" expr="(($L_LATEST_WF_STATUS != 'SUCCESS') OR&#xA;   ($L_LATEST_WF_STATUS IS  NULL ))" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DICallStep typeId="1"  calledObjectType="Dataflow" name="SA_JOB_ACTION_FF_EXT_DF" >
<DIUIOptions>
<DIAttribute name="ParmDefaulted_01" value="FALSE"/>
<DIAttribute name="ParmDefaulted_02" value="FALSE"/>
<DIAttribute name="ParmDefaulted_03" value="FALSE"/>
</DIUIOptions>
<DIParameterValues>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_NAME" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</DIExpression>
<DIExpression isString="true" expr="$L_VALIDATION_IND" >
<VARIABLE_REFERENCE name="$L_VALIDATION_IND" />
</DIExpression>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_LOCATION" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</DIExpression>
</DIParameterValues>
</DICallStep>
</DIIf>
<DIElse>
<DIScript>
<DIUIOptions>
<DIAttribute name="ui_display_name" value="SA_JOB_ACTION_EXIT_SCRIPT"/>
<DIAttribute name="ui_script_text" value="ETL_PRINT('PREVIOS RUN OF WORKFLOW &gt;&gt; '||$L_WF_NAME||' FOR BATCH ID &gt;&gt; '||$G_BATCH_ID||' HAS FINISHED SUCCESSFULLY!');"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((((('PREVIOS RUN OF WORKFLOW &gt;&gt; ' || $L_WF_NAME) || ' FOR BATCH ID &gt;&gt; ') || $G_BATCH_ID) || ' HAS FINISHED SUCCESSFULLY!'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="PREVIOS RUN OF WORKFLOW &gt;&gt; " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</CONCAT>
<CONSTANT value=" FOR BATCH ID &gt;&gt; " datatype="VARCHAR" size="17" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</CONCAT>
<CONSTANT value=" HAS FINISHED SUCCESSFULLY!" datatype="VARCHAR" size="27" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DIElse>
</DIIfStep>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This script that calls the custom function that closes the metadata records that are part of tracking the workflow process."/>
<DIAttribute name="ui_display_name" value="SA_JOB_ACTION_FF_EXT_END_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK END OF WORKFLOW&#xD;&#xA;ABC_ENDWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID);"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_endwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_endwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
<DICatch typeId="20" errorCode="210101" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The workflow catch object is the end of the TRY/CATCH block in BO DS.  This catch block contains the script object that calls a custom fail workflow function used to write the metadata for failed jobs."/>
<DIAttribute name="ui_display_name" value="SA_JOB_ACTION_FF_EXT_CATCH"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that is used to write the metadata for failed workflows."/>
<DIAttribute name="ui_display_name" value="SA_JOB_ACTION_FF_EXT_FAIL_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK FAIL OF WORKFLOW&#xD;&#xA;ABC_FAILWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID, 'Error: \[' || error_number() || '\] ' || error_message());"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_failwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID, ((('Error: \\[' || error_number()) || '\\] ') || error_message()))" >
<FUNCTION_CALL name="abc_failwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="Error: \[" datatype="VARCHAR" size="9" />
<FUNCTION_CALL name="error_number"  type="DI" />
</CONCAT>
<CONSTANT value="\] " datatype="VARCHAR" size="3" />
</CONCAT>
<FUNCTION_CALL name="error_message"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
</DICatch>
</DITryStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIDataflow name="SA_JOB_ACTION_FF_EXT_DF" typeId="1" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Description" value="The dataflow that loads delta data from the flat file extracts into the EXT tables.  The data structure of the EXT tables will be the same as the flat file extracts.  All data will be sourced from the flat files.  The data that is sourced will be processed through a validation transformation when possible to make sure that data is usable.  All data that is determined to be not processable will be loaded into the table VALF tables.  VALF tables contain only those records which failed the validation check and were deemed unusable."/>
</DIProperties>
<DIParameters>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$P_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="255" >
</DIElement>
</DIParameters>
<DITransforms>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The query transform QRY_EXTRACT sources data from the specific flat file.  All data from the source file is pulled into the data flow."/>
<DIAttribute name="ui_acta_from_schema_0" value="SA_JOB_ACTION"/>
<DIAttribute name="ui_display_name" value="QRY_EXTRACT"/>
</DIUIOptions>
<DISchema name="QRY_EXTRACT" >
<DIElement name="JOBACTIONENDTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_ACTION.JOBACTIONENDTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_ACTION.JOBACTIONID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTARTTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_ACTION.JOBACTIONSTARTTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_ACTION.JOBACTIONSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_ACTION.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBGROUPID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_ACTION.JOBGROUPID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_ACTION.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_ACTION.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_ACTION.SERVERSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="JOBID||':'||SERVERID||':'||JOBACTIONID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="upper(JOBID||':'||SERVERID||':'||JOBACTIONID)"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="SA_JOB_ACTION.JOBACTIONENDTIME" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_ACTION" column="JOBACTIONENDTIME" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_ACTION.JOBACTIONID" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_ACTION" column="JOBACTIONID" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_ACTION.JOBACTIONSTARTTIME" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_ACTION" column="JOBACTIONSTARTTIME" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_ACTION.JOBACTIONSTATUS" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_ACTION" column="JOBACTIONSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_ACTION.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_ACTION" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_ACTION.JOBGROUPID" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_ACTION" column="JOBGROUPID" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_ACTION.JOBID" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_ACTION" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_ACTION.SERVERID" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_ACTION" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_ACTION.SERVERSTATUS" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_ACTION" column="SERVERSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="((((JOBID || ':') || SERVERID) || ':') || JOBACTIONID)" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<COLUMN_REFERENCE  column="JOBID" />
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="SERVERID" />
</CONCAT>
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="JOBACTIONID" />
</CONCAT>
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
<DIExpression isString="true" expr="upper(((((JOBID || ':') || SERVERID) || ':') || JOBACTIONID))" >
<FUNCTION_CALL name="upper"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<COLUMN_REFERENCE  column="JOBID" />
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="SERVERID" />
</CONCAT>
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="JOBACTIONID" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="SA_JOB_ACTION" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>


<!-- GUID is optional -->
<DITransformCall typeId="210" name="Case_Operation"  >
<DIUIOptions>
<DIAttribute name="CS_VALIDATION_VALIDATION_OFF" value="$P_VALIDATION_IND ='OFF'"/>
<DIAttribute name="CS_VALIDATION_VALIDATION_ON" value="$P_VALIDATION_IND ='ON'"/>
<DIAttribute name="ObjectDesc" value="The case transform CS_VALIDATION routes the data in the dataflow to a validation transform if the variable $P_VALIDATION_IND is on. This variable allows the process to turn validations on and off."/>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_MARK_LATEST"/>
<DIAttribute name="ui_display_name" value="CS_VALIDATION"/>
</DIUIOptions>
<DIInputView name="QRY_MARK_LATEST" />
<DISchema name="CS_VALIDATION" >
</DISchema>
<DICase>
<DISwitch label="VALIDATION_ON" outputView="CS_VALIDATION_VALIDATION_ON" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'ON')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="ON" datatype="VARCHAR" size="2" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
<DISwitch label="VALIDATION_OFF" outputView="CS_VALIDATION_VALIDATION_OFF" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'OFF')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="OFF" datatype="VARCHAR" size="3" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
</DICase>
<DIAttributes>
<DIAttribute name="Mutually_Exclusive" value="no"/>
<DIAttribute name="Preserve_Expression_Order" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Merge" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The merge transformation MRG_PASS_FAIL combines the data streams when validation is on or off.  This allows us to have a single target instance in the data flow."/>
<DIAttribute name="ui_display_name" value="MRG_PASS_FAIL"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_OFF"  />
<DIInputView name="Validation_Pass"  />
<DISchema name="MRG_PASS_FAIL" >
</DISchema>
</DITransformCall>
<DITransformCall typeId="111" name="Validation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The validation transform applies validation rules to specific data fields.  If a record is sourced from the flat file and fails validation, the record will be flagged as invalid and will be loaded into the table {SOURCE TABLE}_VALF."/>
<DIAttribute name="ui_display_name" value="Validation"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_ON"  />
<DISchema name="Validation_Pass" >
</DISchema>
<DISchema name="Validation_Fail" >
</DISchema>
<DIAttributes>
<DIAttribute name="validation_rules" hasNestedXMLTree ="true">
<Rules collectData="false" collectStats="false">
<Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE" noValidationWhenNull="false">
<RuleName/>
<Description/>
<Expression uiSelection="1">
<UIValue1>=</UIValue1>
<UIValue2>1</UIValue2>
<Custom>CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE = 1</Custom>
</Expression>
<Action sendTo="0" substOnFail="false" substValue=""/>
</Column>
<Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY" noValidationWhenNull="false">
<RuleName>BUSINESS KEY IS NULL</RuleName>
<Description/>
<Expression uiSelection="6">
<UIValue1>IS NOT NULL</UIValue1>
<UIValue2/>
<Custom>CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY  is not null and CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY &lt;&gt; &apos;&apos;</Custom>
</Expression>
<Action sendTo="0" substOnFail="false" substValue=""/>
</Column>
</Rules>
</DIAttribute>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Table_Comparison" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Compare SRC_LASTMODDATE to the snapshot table to determine if it is a new record or an update"/>
<DIAttribute name="ui_display_name" value="TC_SA_JOB_ACTION_TSNP"/>
</DIUIOptions>
<DIInputView name="QRY_SORT"  />
<DISchema name="SA_JOB_ACTION_TSNP" >
</DISchema>
<DIAttributes>
<DIAttribute name="cache_comparison_table" value="no"/>
<DIAttribute name="database_datastore" value="SRCSTAGING_DS"/>
<DIAttribute name="detect_all_dup_deletes" value="no"/>
<DIAttribute name="detect_delete" value="no"/>
<DIAttribute name="primary_key_column1" value="MD_BUSINESS_KEY"/>
<DIAttribute name="primary_key_column2" value="MD_CP_ID"/>
<DIAttribute name="run_as_separate_process" value="no"/>
<DIAttribute name="source_is_sorted" value="yes"/>
<DIAttribute name="table_name" value="SA_JOB_ACTION_TSNP"/>
<DIAttribute name="table_owner" value="SRCSTAGING_ALIAS"/>
<DIAttribute name="update_cache" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This map operation filters out all records that are not inserts, and changes the handling of these records from Insert to Normal"/>
<DIAttribute name="ui_display_name" value="MO_INSERT_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_JOB_ACTION_TSNP"  />
<DISchema name="MO_INSERT_TO_NORMAL_1" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="normal"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="discard"/>
</DIAttributes>
</DITransformCall>
<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_JOB_ACTION_EXT" >
<DIInputView name="Merge"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
<LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
<auto_correct_using_merge>Yes</auto_correct_using_merge>
<bulk_ldr_all_rows/>
<bulk_ldr_max_errors/>
<bulk_ldr_rows_per_commit/>
<enable_partitioning>no</enable_partitioning>
<ignore_column_case>yes</ignore_column_case>
<ignore_columns_null>no</ignore_columns_null>
<ignore_columns_value/>
<loader_auto_correct>yes</loader_auto_correct>
<loader_bulk_load>0</loader_bulk_load>
<loader_compare_column>compare_by_name</loader_compare_column>
<loader_delete_map/>
<loader_drop_and_create_table>no</loader_drop_and_create_table>
<loader_insert_map/>
<loader_load_choice>append</loader_load_choice>
<loader_num_parallel_loaders>1</loader_num_parallel_loaders>
<loader_overflow_file>overflow_file</loader_overflow_file>
<loader_post_load1/>
<loader_pre_load1/>
<loader_quote_names>0</loader_quote_names>
<loader_transactional>no</loader_transactional>
<loader_transactional_order>0</loader_transactional_order>
<loader_update_key_columns>no</loader_update_key_columns>
<loader_update_map/>
<loader_use_user_defined_keys>no</loader_use_user_defined_keys>
<loader_xact_size>1000</loader_xact_size>
<mssql_bulk_ldr_mode>truncate</mssql_bulk_ldr_mode>
<mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
<overflow_file_format>Write data</overflow_file_format>
<overriding_substitution_parameter_for_tablename/>
<use_overflow_file>no</use_overflow_file>
<use_unicode_varchar>no</use_unicode_varchar>
<sql_text/>
</LDRConfiguration>
</LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_JOB_ACTION_VALF" >
<DIInputView name="QRY_FAIL"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
<LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
<auto_correct_using_merge>Yes</auto_correct_using_merge>
<bulk_ldr_all_rows/>
<bulk_ldr_max_errors/>
<bulk_ldr_rows_per_commit>1000</bulk_ldr_rows_per_commit>
<enable_partitioning>no</enable_partitioning>
<ignore_column_case>yes</ignore_column_case>
<ignore_columns_null>no</ignore_columns_null>
<ignore_columns_value/>
<loader_auto_correct>yes</loader_auto_correct>
<loader_bulk_load>1</loader_bulk_load>
<loader_compare_column>compare_by_name</loader_compare_column>
<loader_delete_map/>
<loader_drop_and_create_table>no</loader_drop_and_create_table>
<loader_insert_map/>
<loader_load_choice>append</loader_load_choice>
<loader_num_parallel_loaders>1</loader_num_parallel_loaders>
<loader_overflow_file>overflow_file</loader_overflow_file>
<loader_post_load1/>
<loader_pre_load1/>
<loader_quote_names>0</loader_quote_names>
<loader_transactional>no</loader_transactional>
<loader_transactional_order>0</loader_transactional_order>
<loader_update_key_columns>no</loader_update_key_columns>
<loader_update_map/>
<loader_use_user_defined_keys>no</loader_use_user_defined_keys>
<loader_xact_size>1000</loader_xact_size>
<mssql_bulk_ldr_mode>append</mssql_bulk_ldr_mode>
<mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
<overflow_file_format>Write data</overflow_file_format>
<overriding_substitution_parameter_for_tablename/>
<use_overflow_file>no</use_overflow_file>
<use_unicode_varchar>no</use_unicode_varchar>
<sql_text/>
</LDRConfiguration>
</LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Query the failed records, adding the error, batch, and process information"/>
<DIAttribute name="ui_acta_from_schema_0" value="Validation_Fail"/>
<DIAttribute name="ui_display_name" value="QRY_FAIL"/>
</DIUIOptions>
<DISchema name="QRY_FAIL" >
<DIElement name="JOBACTIONENDTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBACTIONENDTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBACTIONID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTARTTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBACTIONSTARTTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBACTIONSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBGROUPID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBGROUPID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.SERVERSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORACTION" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.DI_ERRORACTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="ifthenelse(Validation_Fail.MD_BUSINESS_KEY IS NULL OR Validation_Fail.MD_BUSINESS_KEY='', 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING','Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="Validation_Fail.JOBACTIONENDTIME" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBACTIONENDTIME" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.JOBACTIONID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBACTIONID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.JOBACTIONSTARTTIME" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBACTIONSTARTTIME" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.JOBACTIONSTATUS" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBACTIONSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.JOBGROUPID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBGROUPID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.JOBID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.SERVERID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.SERVERSTATUS" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="SERVERSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.DI_ERRORACTION" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="DI_ERRORACTION" />
</DIExpression>
<DIExpression isString="true" expr="ifthenelse(((Validation_Fail.MD_BUSINESS_KEY IS  NULL ) OR&#xA;   (Validation_Fail.MD_BUSINESS_KEY = '')), 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING', 'Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')" >
<FUNCTION_CALL name="ifthenelse"  type="DI" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="IS NULL">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</LOGICAL_OP>
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
<CONSTANT value="" datatype="VARCHAR" size="0" />
</LOGICAL_OP>
</LOGICAL_OP>
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING" datatype="VARCHAR" size="63" />
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE" datatype="VARCHAR" size="52" />
</FUNCTION_CALL>
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="Validation_Fail" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_SORT_BK"/>
<DIAttribute name="ui_display_name" value="QRY_MARK_LATEST"/>
</DIUIOptions>
<DISchema name="QRY_MARK_LATEST" >
<DIElement name="JOBACTIONENDTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBACTIONENDTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBACTIONID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTARTTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBACTIONSTARTTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBACTIONSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBGROUPID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBGROUPID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.SERVERSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MARK_DUPLICATE" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="is_group_changed( QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER )"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBACTIONENDTIME" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBACTIONENDTIME" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBACTIONID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBACTIONID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBACTIONSTARTTIME" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBACTIONSTARTTIME" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBACTIONSTATUS" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBACTIONSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBGROUPID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBGROUPID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.SERVERID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.SERVERSTATUS" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="SERVERSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="is_group_changed(QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER)" >
<FUNCTION_CALL name="is_group_changed"  type="DI" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY_FOR_ORDER" />
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_SORT_BK" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIFileSource typeId="33" formatName="SA_JOB_ACTION" filename="$P_DYNAMIC_FILE_NAME" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="&quot;$P_DYNAMIC_FILE_NAME&quot;(SA_JOB_ACTION)"/>
</DIUIOptions>
<DIOutputView name="SA_JOB_ACTION"  />
<DIAttributes>
<DIAttribute name="adaptable" value="no"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="name" value="SA_JOB_ACTION"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_filename_col" value="DI_FILENAME"/>
<DIAttribute name="reader_filename_col_size" value="100"/>
<DIAttribute name="reader_filename_only" value="yes"/>
<DIAttribute name="reader_include_filename" value="no"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$P_DYNAMIC_FILE_LOCATION"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="transfer_custom" value="no"/>
</DIAttributes>
</DIFileSource>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_INSERT_TO_NORMAL_1"/>
<DIAttribute name="ui_display_name" value="QRY_NEW"/>
</DIUIOptions>
<DISchema name="QRY_NEW" >
<DIElement name="JOBACTIONENDTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBACTIONENDTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBACTIONID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTARTTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBACTIONSTARTTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBACTIONSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBGROUPID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBGROUPID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.SERVERSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_NEW "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBACTIONENDTIME" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBACTIONENDTIME" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBACTIONID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBACTIONID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBACTIONSTARTTIME" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBACTIONSTARTTIME" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBACTIONSTATUS" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBACTIONSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBGROUPID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBGROUPID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.SERVERID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.SERVERSTATUS" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="SERVERSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_NEW" >
<VARIABLE_REFERENCE name="$G_FLAG_NEW" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_INSERT_TO_NORMAL_1" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MRG_PASS_FAIL"/>
<DIAttribute name="ui_display_name" value="QRY_SORT"/>
<DIAttribute name="ui_where_text" value="MRG_PASS_FAIL.MARK_DUPLICATE=1"/>
</DIUIOptions>
<DISchema name="QRY_SORT" >
<DIElement name="JOBACTIONENDTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBACTIONENDTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBACTIONID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTARTTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBACTIONSTARTTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBACTIONSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBGROUPID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBGROUPID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.SERVERSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBACTIONENDTIME" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBACTIONENDTIME" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBACTIONID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBACTIONID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBACTIONSTARTTIME" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBACTIONSTARTTIME" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBACTIONSTATUS" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBACTIONSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBGROUPID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBGROUPID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.SERVERID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.SERVERSTATUS" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="SERVERSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MRG_PASS_FAIL" />
</DIFrom>
<DIWhere>
<DIExpression isString="true" expr="(MRG_PASS_FAIL.MARK_DUPLICATE = 1)" >
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MARK_DUPLICATE" />
<CONSTANT value="1" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
</DIWhere>
<DIOrderBys>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_EXTRACT"/>
<DIAttribute name="ui_display_name" value="QRY_SORT_BK"/>
</DIUIOptions>
<DISchema name="QRY_SORT_BK" >
<DIElement name="JOBACTIONENDTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBACTIONENDTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBACTIONID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTARTTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBACTIONSTARTTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBACTIONSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBGROUPID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBGROUPID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.SERVERSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBACTIONENDTIME" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBACTIONENDTIME" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBACTIONID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBACTIONID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBACTIONSTARTTIME" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBACTIONSTARTTIME" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBACTIONSTATUS" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBACTIONSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBGROUPID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBGROUPID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.SERVERID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.SERVERSTATUS" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="SERVERSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_EXTRACT" />
</DIFrom>
<DIOrderBys>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBENDDATE" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="MO_UPDATE_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_JOB_ACTION_TSNP"  />
<DISchema name="MO_UPDATE_TO_NORMAL" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="discard"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="normal"/>
</DIAttributes>
</DITransformCall>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_UPDATE_TO_NORMAL"/>
<DIAttribute name="ui_display_name" value="QRY_UPDATE"/>
</DIUIOptions>
<DISchema name="QRY_UPDATE" >
<DIElement name="JOBACTIONENDTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBACTIONENDTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBACTIONID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTARTTIME" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBACTIONSTARTTIME"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBACTIONSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBACTIONSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBGROUPID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBGROUPID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERSTATUS" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.SERVERSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_UPDATE "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBACTIONENDTIME" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBACTIONENDTIME" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBACTIONID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBACTIONID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBACTIONSTARTTIME" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBACTIONSTARTTIME" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBACTIONSTATUS" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBACTIONSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBGROUPID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBGROUPID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.SERVERID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.SERVERSTATUS" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="SERVERSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_UPDATE" >
<VARIABLE_REFERENCE name="$G_FLAG_UPDATE" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_UPDATE_TO_NORMAL" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Merge" >
<DIInputView name="QRY_NEW"  />
<DIInputView name="QRY_UPDATE"  />
<DISchema name="Merge" >
</DISchema>
</DITransformCall>
</DITransforms>
<DIAttributes>
<DIAttribute name="Cache_type" value="pageable_cache"/>
<DIAttribute name="Parallelism_degree" value="0"/>
<DIAttribute name="allows_both_input_and_output" value="yes"/>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="use_dataflow_links" value="no"/>
<DIAttribute name="use_datastore_links" value="yes"/>
<DIAttribute name="validation_xform_exists" value="yes"/>
<DIAttribute name="validation_xform_stats" value="no"/>
</DIAttributes>
</DIDataflow>
<DIWorkflow name="SA_JOB_INFO_FF_EXT_WF" typeId="2" >
<DIProperties>
<DIAttribute name="Description" value="This workflow is responsible for loading the delta records found in the flat file extracts into the EXT tables."/>
</DIProperties>
<DIVariables>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_TABLE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_WF_NAME" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_MAX_WF_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_LATEST_WF_STATUS" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_SOURCE_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
</DIVariables>
<DISteps>
<DITryStep typeId="13" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The Try of the Try / Catch Block"/>
<DIAttribute name="ui_display_name" value="SA_JOB_INFO_FF_EXT_TRY"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that initiates the metadata tracking for the workflow. The script will also be used to populate the local workflow variables."/>
<DIAttribute name="ui_display_name" value="SA_JOB_INFO_FF_EXT_START_SC"/>
<DIAttribute name="ui_script_text" value="#WORKFLOW NAME&#xD;&#xA;$L_WF_NAME = workflow_name()||$G_CONTENT_PACK_ID;&#xD;&#xA;&#xD;&#xA;# GET MAX PROCESS_ID OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID&#xD;&#xA;$L_MAX_WF_PROCESS_ID=M_ICPS_GET_MAX_WF_PROCESS_ID($G_BATCH_ID,$L_WF_NAME,job_name( ));&#xD;&#xA;&#xD;&#xA;# GET LAST EXECUTION STATUS OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID, ACCORDING TO MAX PROCESS_ID&#xD;&#xA;$L_LATEST_WF_STATUS =M_ICPS_GET_WF_STATUS($L_MAX_WF_PROCESS_ID,$L_WF_NAME );&#xD;&#xA;&#xD;&#xA;# CALL FUNCTION TO TRACK START OF WORKFLOW&#xD;&#xA;ABC_STARTWF_FN($L_WF_NAME, $G_PROCESS_ID);&#xD;&#xA;&#xD;&#xA;# ASSIGN TABLE NAME VALUE TO BE USED TO LOOKUP THE VALIDATION_STATUS ON THE VALIDATION REFERENCE TABLE AS NECESSARY&#xD;&#xA;$L_ENTITY_NAME ='JOB_INFO';&#xD;&#xA;$L_TABLE_NAME = $G_PRODUCT_NAME ||'_'||$L_ENTITY_NAME ;&#xD;&#xA;$L_VALIDATION_IND = GET_VALIDATION_STATUS_FN($G_ENABLE_VAL, $L_TABLE_NAME);&#xD;&#xA;&#xD;&#xA;# CLEAN PREIOUSLY LOADED DATA FROM DB TABLE, FOR CASES OF RE-RUN AFTER FAILURE&#xD;&#xA;if ($L_MAX_WF_PROCESS_ID is not null and $L_LATEST_WF_STATUS &lt;&gt; 'SUCCESS')&#xD;&#xA;begin&#xD;&#xA;&#x9;M_ICPS_RERUN_CLEANUP ( $L_TABLE_NAME ||'_EXT',$G_BATCH_ID , $L_MAX_WF_PROCESS_ID ,$G_CONTENT_PACK_ID);&#xD;&#xA;end &#xD;&#xA;&#xD;&#xA;# ASSIGN FILE NAME AND FILE LOCATION VALUES&#xD;&#xA;$L_SOURCE_ENTITY_NAME= METADATA_GET_SOURCE_ENTITY_NAME($L_ENTITY_NAME);&#xD;&#xA;&#xD;&#xA;$L_DYNAMIC_FILE_LOCATION = $G_SA_FILELOCATION ;&#xD;&#xA;$L_DYNAMIC_FILE_NAME = $G_PRODUCT_NAME||'_'||$L_SOURCE_ENTITY_NAME||'_'||$G_CONTENT_PACK_ID||'_EXTRACT_FF.TXT';&#xD;&#xA;&#xD;&#xA;# PRINT PARAMETERS USED BASED ON TRACE MODE&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;ETL_PRINT('This EXT Process will read any file named '||$L_DYNAMIC_FILE_NAME); &#xD;&#xA;ETL_PRINT('The File is located in the '||$L_DYNAMIC_FILE_LOCATION||' directory.' );&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
</DIUIOptions>
<DIAssignmentStep typeId="12" variable="$L_WF_NAME" >
<DIExpression isString="true" expr="(workflow_name() || $G_CONTENT_PACK_ID)" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_MAX_WF_PROCESS_ID" >
<DIExpression isString="true" expr="m_icps_get_max_wf_process_id($G_BATCH_ID, $L_WF_NAME, job_name())" >
<FUNCTION_CALL name="m_icps_get_max_wf_process_id"  type="DI" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<FUNCTION_CALL name="job_name"  type="DI" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_LATEST_WF_STATUS" >
<DIExpression isString="true" expr="m_icps_get_wf_status($L_MAX_WF_PROCESS_ID, $L_WF_NAME)" >
<FUNCTION_CALL name="m_icps_get_wf_status"  type="DI" >
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_startwf_fn($L_WF_NAME, $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_startwf_fn"  type="DI" >
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$L_ENTITY_NAME" >
<DIExpression isString="true" expr="'JOB_INFO'" >
<CONSTANT value="JOB_INFO" datatype="VARCHAR" size="8" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_TABLE_NAME" >
<DIExpression isString="true" expr="(($G_PRODUCT_NAME || '_') || $L_ENTITY_NAME)" >
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_VALIDATION_IND" >
<DIExpression isString="true" expr="get_validation_status_fn($G_ENABLE_VAL, $L_TABLE_NAME)" >
<FUNCTION_CALL name="get_validation_status_fn"  type="DI" >
<VARIABLE_REFERENCE name="$G_ENABLE_VAL" />
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(($L_MAX_WF_PROCESS_ID IS NOT  NULL ) AND&#xA;   ($L_LATEST_WF_STATUS != 'SUCCESS'))" >
<LOGICAL_OP op="AND">
<LOGICAL_OP op="IS NOT NULL">
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
</LOGICAL_OP>
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="m_icps_rerun_cleanup(($L_TABLE_NAME || '_EXT'), $G_BATCH_ID, $L_MAX_WF_PROCESS_ID, $G_CONTENT_PACK_ID)" >
<FUNCTION_CALL name="m_icps_rerun_cleanup"  type="DI" >
<CONCAT>
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
<CONSTANT value="_EXT" datatype="VARCHAR" size="4" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
<DIElse>
</DIElse>
</DIIfStep>
<DIAssignmentStep typeId="12" variable="$L_SOURCE_ENTITY_NAME" >
<DIExpression isString="true" expr="metadata_get_source_entity_name($L_ENTITY_NAME)" >
<FUNCTION_CALL name="metadata_get_source_entity_name"  type="DI" >
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_LOCATION" >
<DIExpression isString="true" expr="$G_SA_FILELOCATION" >
<VARIABLE_REFERENCE name="$G_SA_FILELOCATION" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_NAME" >
<DIExpression isString="true" expr="((((($G_PRODUCT_NAME || '_') || $L_SOURCE_ENTITY_NAME) || '_') || $G_CONTENT_PACK_ID) || '_EXTRACT_FF.TXT')" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_SOURCE_ENTITY_NAME" />
</CONCAT>
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<CONSTANT value="_EXTRACT_FF.TXT" datatype="VARCHAR" size="15" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('This EXT Process will read any file named ' || $L_DYNAMIC_FILE_NAME))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="This EXT Process will read any file named " datatype="VARCHAR" size="42" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('The File is located in the ' || $L_DYNAMIC_FILE_LOCATION) || ' directory.'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="The File is located in the " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</CONCAT>
<CONSTANT value=" directory." datatype="VARCHAR" size="11" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
<DIIfStep typeId="2" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="If_condition" value="$L_LATEST_WF_STATUS&lt;&gt;'SUCCESS' or $L_LATEST_WF_STATUS is null"/>
<DIAttribute name="ui_display_name" value="SA_JOB_INFO_FF_EXT_CONDITION"/>
</DIUIOptions>
<DIExpression isString="true" expr="(($L_LATEST_WF_STATUS != 'SUCCESS') OR&#xA;   ($L_LATEST_WF_STATUS IS  NULL ))" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DICallStep typeId="1"  calledObjectType="Dataflow" name="SA_JOB_INFO_FF_EXT_DF" >
<DIUIOptions>
<DIAttribute name="ParmDefaulted_01" value="FALSE"/>
<DIAttribute name="ParmDefaulted_02" value="FALSE"/>
<DIAttribute name="ParmDefaulted_03" value="FALSE"/>
</DIUIOptions>
<DIParameterValues>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_NAME" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</DIExpression>
<DIExpression isString="true" expr="$L_VALIDATION_IND" >
<VARIABLE_REFERENCE name="$L_VALIDATION_IND" />
</DIExpression>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_LOCATION" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</DIExpression>
</DIParameterValues>
</DICallStep>
</DIIf>
<DIElse>
<DIScript>
<DIUIOptions>
<DIAttribute name="ui_display_name" value="SA_JOB_INFO_EXIT_SCRIPT"/>
<DIAttribute name="ui_script_text" value="ETL_PRINT('PREVIOS RUN OF WORKFLOW &gt;&gt; '||$L_WF_NAME||' FOR BATCH ID &gt;&gt; '||$G_BATCH_ID||' HAS FINISHED SUCCESSFULLY!');"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((((('PREVIOS RUN OF WORKFLOW &gt;&gt; ' || $L_WF_NAME) || ' FOR BATCH ID &gt;&gt; ') || $G_BATCH_ID) || ' HAS FINISHED SUCCESSFULLY!'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="PREVIOS RUN OF WORKFLOW &gt;&gt; " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</CONCAT>
<CONSTANT value=" FOR BATCH ID &gt;&gt; " datatype="VARCHAR" size="17" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</CONCAT>
<CONSTANT value=" HAS FINISHED SUCCESSFULLY!" datatype="VARCHAR" size="27" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DIElse>
</DIIfStep>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This script that calls the custom function that closes the metadata records that are part of tracking the workflow process."/>
<DIAttribute name="ui_display_name" value="SA_JOB_INFO_FF_EXT_END_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK END OF WORKFLOW&#xD;&#xA;ABC_ENDWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID);"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_endwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_endwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
<DICatch typeId="20" errorCode="210101" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The workflow catch object is the end of the TRY/CATCH block in BO DS.  This catch block contains the script object that calls a custom fail workflow function used to write the metadata for failed jobs."/>
<DIAttribute name="ui_display_name" value="SA_JOB_INFO_FF_EXT_CATCH"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that is used to write the metadata for failed workflows."/>
<DIAttribute name="ui_display_name" value="SA_JOB_INFO_FF_EXT_FAIL_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK FAIL OF WORKFLOW&#xD;&#xA;ABC_FAILWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID, 'Error: \[' || error_number() || '\] ' || error_message());"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_failwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID, ((('Error: \\[' || error_number()) || '\\] ') || error_message()))" >
<FUNCTION_CALL name="abc_failwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="Error: \[" datatype="VARCHAR" size="9" />
<FUNCTION_CALL name="error_number"  type="DI" />
</CONCAT>
<CONSTANT value="\] " datatype="VARCHAR" size="3" />
</CONCAT>
<FUNCTION_CALL name="error_message"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
</DICatch>
</DITryStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIDataflow name="SA_JOB_INFO_FF_EXT_DF" typeId="1" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Description" value="The dataflow that loads delta data from the flat file extracts into the EXT tables.  The data structure of the EXT tables will be the same as the flat file extracts.  All data will be sourced from the flat files.  The data that is sourced will be processed through a validation transformation when possible to make sure that data is usable.  All data that is determined to be not processable will be loaded into the table VALF tables.  VALF tables contain only those records which failed the validation check and were deemed unusable."/>
</DIProperties>
<DIParameters>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$P_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="255" >
</DIElement>
</DIParameters>
<DITransforms>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The query transform QRY_EXTRACT sources data from the specific flat file.  All data from the source file is pulled into the data flow."/>
<DIAttribute name="ui_acta_from_schema_0" value="SA_JOB_INFO"/>
<DIAttribute name="ui_display_name" value="QRY_EXTRACT"/>
</DIUIOptions>
<DISchema name="QRY_EXTRACT" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_INFO.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_INFO.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTARTDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_INFO.JOBSTARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_INFO.JOBSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBTYPE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_INFO.JOBTYPE"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="upper(JOBID)"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="SA_JOB_INFO.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_INFO" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_INFO.JOBID" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_INFO" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_INFO.JOBSTARTDATE" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_INFO" column="JOBSTARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_INFO.JOBSTATUS" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_INFO" column="JOBSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_INFO.JOBTYPE" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_INFO" column="JOBTYPE" />
</DIExpression>
<DIExpression isString="true" expr="JOBID" >
<COLUMN_REFERENCE  column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
<DIExpression isString="true" expr="upper(JOBID)" >
<FUNCTION_CALL name="upper"  type="DI" >
<COLUMN_REFERENCE  column="JOBID" />
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="SA_JOB_INFO" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>


<!-- GUID is optional -->
<DITransformCall typeId="210" name="Case_Operation"  >
<DIUIOptions>
<DIAttribute name="CS_VALIDATION_VALIDATION_OFF" value="$P_VALIDATION_IND ='OFF'"/>
<DIAttribute name="CS_VALIDATION_VALIDATION_ON" value="$P_VALIDATION_IND ='ON'"/>
<DIAttribute name="ObjectDesc" value="The case transform CS_VALIDATION routes the data in the dataflow to a validation transform if the variable $P_VALIDATION_IND is on. This variable allows the process to turn validations on and off."/>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_MARK_LATEST"/>
<DIAttribute name="ui_display_name" value="CS_VALIDATION"/>
</DIUIOptions>
<DIInputView name="QRY_MARK_LATEST" />
<DISchema name="CS_VALIDATION" >
</DISchema>
<DICase>
<DISwitch label="VALIDATION_ON" outputView="CS_VALIDATION_VALIDATION_ON" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'ON')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="ON" datatype="VARCHAR" size="2" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
<DISwitch label="VALIDATION_OFF" outputView="CS_VALIDATION_VALIDATION_OFF" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'OFF')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="OFF" datatype="VARCHAR" size="3" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
</DICase>
<DIAttributes>
<DIAttribute name="Mutually_Exclusive" value="no"/>
<DIAttribute name="Preserve_Expression_Order" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Merge" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The merge transformation MRG_PASS_FAIL combines the data streams when validation is on or off.  This allows us to have a single target instance in the data flow."/>
<DIAttribute name="ui_display_name" value="MRG_PASS_FAIL"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_OFF"  />
<DIInputView name="Validation_Pass"  />
<DISchema name="MRG_PASS_FAIL" >
</DISchema>
</DITransformCall>
<DITransformCall typeId="111" name="Validation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The validation transform applies validation rules to specific data fields.  If a record is sourced from the flat file and fails validation, the record will be flagged as invalid and will be loaded into the table {SOURCE TABLE}_VALF."/>
<DIAttribute name="ui_display_name" value="Validation"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_ON"  />
<DISchema name="Validation_Pass" >
</DISchema>
<DISchema name="Validation_Fail" >
</DISchema>
<DIAttributes>
<DIAttribute name="validation_rules" hasNestedXMLTree ="true">
<Rules collectData="false" collectStats="false">
              <Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE" noValidationWhenNull="false">
                <RuleName/>
                <Description/>
                <Expression uiSelection="1">
                  <UIValue1>=</UIValue1>
                  <UIValue2>1</UIValue2>
                  <Custom>CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE = 1</Custom>
                </Expression>
                <Action sendTo="0" substOnFail="false" substValue=""/>
              </Column>
              <Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY" noValidationWhenNull="false">
                <RuleName>BUSINESS KEY IS NULL</RuleName>
                <Description/>
                <Expression uiSelection="6">
                  <UIValue1>IS NOT NULL</UIValue1>
                  <UIValue2/>
                  <Custom>CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY  is not null and CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY &lt;&gt; &apos;&apos;</Custom>
                </Expression>
                <Action sendTo="0" substOnFail="false" substValue=""/>
              </Column>
            </Rules>
</DIAttribute>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Table_Comparison" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Compare SRC_LASTMODDATE to the snapshot table to determine if it is a new record or an update"/>
<DIAttribute name="ui_display_name" value="TC_SA_JOB_INFO_TSNP"/>
</DIUIOptions>
<DIInputView name="QRY_SORT"  />
<DISchema name="SA_JOB_INFO_TSNP" >
</DISchema>
<DIAttributes>
<DIAttribute name="cache_comparison_table" value="no"/>
<DIAttribute name="database_datastore" value="SRCSTAGING_DS"/>
<DIAttribute name="detect_all_dup_deletes" value="no"/>
<DIAttribute name="detect_delete" value="no"/>
<DIAttribute name="primary_key_column1" value="MD_BUSINESS_KEY"/>
<DIAttribute name="primary_key_column2" value="MD_CP_ID"/>
<DIAttribute name="run_as_separate_process" value="no"/>
<DIAttribute name="source_is_sorted" value="yes"/>
<DIAttribute name="table_name" value="SA_JOB_INFO_TSNP"/>
<DIAttribute name="table_owner" value="SRCSTAGING_ALIAS"/>
<DIAttribute name="update_cache" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This map operation filters out all records that are not inserts, and changes the handling of these records from Insert to Normal"/>
<DIAttribute name="ui_display_name" value="MO_INSERT_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_JOB_INFO_TSNP"  />
<DISchema name="MO_INSERT_TO_NORMAL_1" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="normal"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="discard"/>
</DIAttributes>
</DITransformCall>
<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_JOB_INFO_EXT" >
<DIInputView name="Merge"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit/>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>0</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>truncate</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_JOB_INFO_VALF" >
<DIInputView name="QRY_FAIL"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit>1000</bulk_ldr_rows_per_commit>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>1</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>append</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Query the failed records, adding the error, batch, and process information"/>
<DIAttribute name="ui_acta_from_schema_0" value="Validation_Fail"/>
<DIAttribute name="ui_display_name" value="QRY_FAIL"/>
</DIUIOptions>
<DISchema name="QRY_FAIL" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTARTDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBSTARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBTYPE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBTYPE"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORACTION" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.DI_ERRORACTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="ifthenelse(Validation_Fail.MD_BUSINESS_KEY IS NULL OR Validation_Fail.MD_BUSINESS_KEY='', 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING','Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="Validation_Fail.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.JOBID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.JOBSTARTDATE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBSTARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.JOBSTATUS" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.JOBTYPE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBTYPE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.DI_ERRORACTION" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="DI_ERRORACTION" />
</DIExpression>
<DIExpression isString="true" expr="ifthenelse(((Validation_Fail.MD_BUSINESS_KEY IS  NULL ) OR&#xA;   (Validation_Fail.MD_BUSINESS_KEY = '')), 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING', 'Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')" >
<FUNCTION_CALL name="ifthenelse"  type="DI" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="IS NULL">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</LOGICAL_OP>
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
<CONSTANT value="" datatype="VARCHAR" size="0" />
</LOGICAL_OP>
</LOGICAL_OP>
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING" datatype="VARCHAR" size="63" />
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE" datatype="VARCHAR" size="52" />
</FUNCTION_CALL>
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="Validation_Fail" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_SORT_BK"/>
<DIAttribute name="ui_display_name" value="QRY_MARK_LATEST"/>
</DIUIOptions>
<DISchema name="QRY_MARK_LATEST" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTARTDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBSTARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBTYPE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBTYPE"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MARK_DUPLICATE" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="is_group_changed( QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER )"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBSTARTDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBSTARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBSTATUS" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBTYPE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBTYPE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="is_group_changed(QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER)" >
<FUNCTION_CALL name="is_group_changed"  type="DI" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY_FOR_ORDER" />
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_SORT_BK" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIFileSource typeId="33" formatName="SA_JOB_INFO" filename="$P_DYNAMIC_FILE_NAME" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="&quot;$P_DYNAMIC_FILE_NAME&quot;(SA_JOB_INFO)"/>
</DIUIOptions>
<DIOutputView name="SA_JOB_INFO"  />
<DIAttributes>
<DIAttribute name="adaptable" value="no"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="name" value="SA_JOB_INFO"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_filename_col" value="DI_FILENAME"/>
<DIAttribute name="reader_filename_col_size" value="100"/>
<DIAttribute name="reader_filename_only" value="yes"/>
<DIAttribute name="reader_include_filename" value="no"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$P_DYNAMIC_FILE_LOCATION"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="transfer_custom" value="no"/>
</DIAttributes>
</DIFileSource>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_INSERT_TO_NORMAL_1"/>
<DIAttribute name="ui_display_name" value="QRY_NEW"/>
</DIUIOptions>
<DISchema name="QRY_NEW" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTARTDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBSTARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBTYPE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBTYPE"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_NEW "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBSTARTDATE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBSTARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBSTATUS" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBTYPE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBTYPE" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_NEW" >
<VARIABLE_REFERENCE name="$G_FLAG_NEW" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_INSERT_TO_NORMAL_1" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MRG_PASS_FAIL"/>
<DIAttribute name="ui_display_name" value="QRY_SORT"/>
<DIAttribute name="ui_where_text" value="MRG_PASS_FAIL.MARK_DUPLICATE=1"/>
</DIUIOptions>
<DISchema name="QRY_SORT" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTARTDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBSTARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBTYPE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBTYPE"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBSTARTDATE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBSTARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBSTATUS" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBTYPE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBTYPE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MRG_PASS_FAIL" />
</DIFrom>
<DIWhere>
<DIExpression isString="true" expr="(MRG_PASS_FAIL.MARK_DUPLICATE = 1)" >
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MARK_DUPLICATE" />
<CONSTANT value="1" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
</DIWhere>
<DIOrderBys>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_EXTRACT"/>
<DIAttribute name="ui_display_name" value="QRY_SORT_BK"/>
</DIUIOptions>
<DISchema name="QRY_SORT_BK" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTARTDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBSTARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBTYPE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBTYPE"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBSTARTDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBSTARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBSTATUS" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBTYPE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBTYPE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_EXTRACT" />
</DIFrom>
<DIOrderBys>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBENDDATE" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="MO_UPDATE_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_JOB_INFO_TSNP"  />
<DISchema name="MO_UPDATE_TO_NORMAL" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="discard"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="normal"/>
</DIAttributes>
</DITransformCall>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_UPDATE_TO_NORMAL"/>
<DIAttribute name="ui_display_name" value="QRY_UPDATE"/>
</DIUIOptions>
<DISchema name="QRY_UPDATE" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTARTDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBSTARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBTYPE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBTYPE"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_UPDATE "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBSTARTDATE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBSTARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBSTATUS" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBTYPE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBTYPE" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_UPDATE" >
<VARIABLE_REFERENCE name="$G_FLAG_UPDATE" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_UPDATE_TO_NORMAL" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Merge" >
<DIInputView name="QRY_NEW"  />
<DIInputView name="QRY_UPDATE"  />
<DISchema name="Merge" >
</DISchema>
</DITransformCall>
</DITransforms>
<DIAttributes>
<DIAttribute name="Cache_type" value="pageable_cache"/>
<DIAttribute name="Parallelism_degree" value="0"/>
<DIAttribute name="allows_both_input_and_output" value="yes"/>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="use_dataflow_links" value="no"/>
<DIAttribute name="use_datastore_links" value="yes"/>
<DIAttribute name="validation_xform_exists" value="yes"/>
<DIAttribute name="validation_xform_stats" value="no"/>
</DIAttributes>
</DIDataflow>
<DIWorkflow name="SA_JOB_POLICY_ITEM_FF_EXT_WF" typeId="2" >
<DIProperties>
<DIAttribute name="Description" value="This workflow is responsible for loading the delta records found in the flat file extracts into the EXT tables."/>
</DIProperties>
<DIVariables>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_TABLE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_WF_NAME" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_MAX_WF_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_LATEST_WF_STATUS" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_SOURCE_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
</DIVariables>
<DISteps>
<DITryStep typeId="13" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The Try of the Try / Catch Block"/>
<DIAttribute name="ui_display_name" value="SA_JOB_POLICY_ITEM_FF_EXT_TRY"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that initiates the metadata tracking for the workflow. The script will also be used to populate the local workflow variables."/>
<DIAttribute name="ui_display_name" value="SA_JOB_POLICY_ITEM_FF_EXT_START_SC"/>
<DIAttribute name="ui_script_text" value="#WORKFLOW NAME&#xD;&#xA;$L_WF_NAME = workflow_name()||$G_CONTENT_PACK_ID;&#xD;&#xA;&#xD;&#xA;# GET MAX PROCESS_ID OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID&#xD;&#xA;$L_MAX_WF_PROCESS_ID=M_ICPS_GET_MAX_WF_PROCESS_ID($G_BATCH_ID,$L_WF_NAME,job_name( ));&#xD;&#xA;&#xD;&#xA;# GET LAST EXECUTION STATUS OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID, ACCORDING TO MAX PROCESS_ID&#xD;&#xA;$L_LATEST_WF_STATUS =M_ICPS_GET_WF_STATUS($L_MAX_WF_PROCESS_ID,$L_WF_NAME );&#xD;&#xA;&#xD;&#xA;# CALL FUNCTION TO TRACK START OF WORKFLOW&#xD;&#xA;ABC_STARTWF_FN($L_WF_NAME, $G_PROCESS_ID);&#xD;&#xA;&#xD;&#xA;# ASSIGN TABLE NAME VALUE TO BE USED TO LOOKUP THE VALIDATION_STATUS ON THE VALIDATION REFERENCE TABLE AS NECESSARY&#xD;&#xA;$L_ENTITY_NAME ='JOB_POLICY_ITEM';&#xD;&#xA;$L_TABLE_NAME = $G_PRODUCT_NAME ||'_'||$L_ENTITY_NAME ;&#xD;&#xA;$L_VALIDATION_IND = GET_VALIDATION_STATUS_FN($G_ENABLE_VAL, $L_TABLE_NAME);&#xD;&#xA;&#xD;&#xA;# CLEAN PREIOUSLY LOADED DATA FROM DB TABLE, FOR CASES OF RE-RUN AFTER FAILURE&#xD;&#xA;if ($L_MAX_WF_PROCESS_ID is not null and $L_LATEST_WF_STATUS &lt;&gt; 'SUCCESS')&#xD;&#xA;begin&#xD;&#xA;&#x9;M_ICPS_RERUN_CLEANUP ( $L_TABLE_NAME ||'_EXT',$G_BATCH_ID , $L_MAX_WF_PROCESS_ID ,$G_CONTENT_PACK_ID);&#xD;&#xA;end &#xD;&#xA;&#xD;&#xA;# ASSIGN FILE NAME AND FILE LOCATION VALUES&#xD;&#xA;$L_SOURCE_ENTITY_NAME= METADATA_GET_SOURCE_ENTITY_NAME($L_ENTITY_NAME);&#xD;&#xA;&#xD;&#xA;$L_DYNAMIC_FILE_LOCATION = $G_SA_FILELOCATION ;&#xD;&#xA;$L_DYNAMIC_FILE_NAME = $G_PRODUCT_NAME||'_'||$L_SOURCE_ENTITY_NAME||'_'||$G_CONTENT_PACK_ID||'_EXTRACT_FF.TXT';&#xD;&#xA;&#xD;&#xA;# PRINT PARAMETERS USED BASED ON TRACE MODE&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;ETL_PRINT('This EXT Process will read any file named '||$L_DYNAMIC_FILE_NAME); &#xD;&#xA;ETL_PRINT('The File is located in the '||$L_DYNAMIC_FILE_LOCATION||' directory.' );&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
</DIUIOptions>
<DIAssignmentStep typeId="12" variable="$L_WF_NAME" >
<DIExpression isString="true" expr="(workflow_name() || $G_CONTENT_PACK_ID)" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_MAX_WF_PROCESS_ID" >
<DIExpression isString="true" expr="m_icps_get_max_wf_process_id($G_BATCH_ID, $L_WF_NAME, job_name())" >
<FUNCTION_CALL name="m_icps_get_max_wf_process_id"  type="DI" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<FUNCTION_CALL name="job_name"  type="DI" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_LATEST_WF_STATUS" >
<DIExpression isString="true" expr="m_icps_get_wf_status($L_MAX_WF_PROCESS_ID, $L_WF_NAME)" >
<FUNCTION_CALL name="m_icps_get_wf_status"  type="DI" >
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_startwf_fn($L_WF_NAME, $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_startwf_fn"  type="DI" >
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$L_ENTITY_NAME" >
<DIExpression isString="true" expr="'JOB_POLICY_ITEM'" >
<CONSTANT value="JOB_POLICY_ITEM" datatype="VARCHAR" size="15" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_TABLE_NAME" >
<DIExpression isString="true" expr="(($G_PRODUCT_NAME || '_') || $L_ENTITY_NAME)" >
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_VALIDATION_IND" >
<DIExpression isString="true" expr="get_validation_status_fn($G_ENABLE_VAL, $L_TABLE_NAME)" >
<FUNCTION_CALL name="get_validation_status_fn"  type="DI" >
<VARIABLE_REFERENCE name="$G_ENABLE_VAL" />
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(($L_MAX_WF_PROCESS_ID IS NOT  NULL ) AND&#xA;   ($L_LATEST_WF_STATUS != 'SUCCESS'))" >
<LOGICAL_OP op="AND">
<LOGICAL_OP op="IS NOT NULL">
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
</LOGICAL_OP>
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="m_icps_rerun_cleanup(($L_TABLE_NAME || '_EXT'), $G_BATCH_ID, $L_MAX_WF_PROCESS_ID, $G_CONTENT_PACK_ID)" >
<FUNCTION_CALL name="m_icps_rerun_cleanup"  type="DI" >
<CONCAT>
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
<CONSTANT value="_EXT" datatype="VARCHAR" size="4" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
<DIElse>
</DIElse>
</DIIfStep>
<DIAssignmentStep typeId="12" variable="$L_SOURCE_ENTITY_NAME" >
<DIExpression isString="true" expr="metadata_get_source_entity_name($L_ENTITY_NAME)" >
<FUNCTION_CALL name="metadata_get_source_entity_name"  type="DI" >
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_LOCATION" >
<DIExpression isString="true" expr="$G_SA_FILELOCATION" >
<VARIABLE_REFERENCE name="$G_SA_FILELOCATION" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_NAME" >
<DIExpression isString="true" expr="((((($G_PRODUCT_NAME || '_') || $L_SOURCE_ENTITY_NAME) || '_') || $G_CONTENT_PACK_ID) || '_EXTRACT_FF.TXT')" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_SOURCE_ENTITY_NAME" />
</CONCAT>
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<CONSTANT value="_EXTRACT_FF.TXT" datatype="VARCHAR" size="15" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('This EXT Process will read any file named ' || $L_DYNAMIC_FILE_NAME))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="This EXT Process will read any file named " datatype="VARCHAR" size="42" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('The File is located in the ' || $L_DYNAMIC_FILE_LOCATION) || ' directory.'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="The File is located in the " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</CONCAT>
<CONSTANT value=" directory." datatype="VARCHAR" size="11" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
<DIIfStep typeId="2" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="If_condition" value="$L_LATEST_WF_STATUS&lt;&gt;'SUCCESS' or $L_LATEST_WF_STATUS is null"/>
<DIAttribute name="ui_display_name" value="SA_JOB_POLICY_ITEM_FF_EXT_CONDITION"/>
</DIUIOptions>
<DIExpression isString="true" expr="(($L_LATEST_WF_STATUS != 'SUCCESS') OR&#xA;   ($L_LATEST_WF_STATUS IS  NULL ))" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DICallStep typeId="1"  calledObjectType="Dataflow" name="SA_JOB_POLICY_ITEM_FF_EXT_DF" >
<DIUIOptions>
<DIAttribute name="ParmDefaulted_01" value="FALSE"/>
<DIAttribute name="ParmDefaulted_02" value="FALSE"/>
<DIAttribute name="ParmDefaulted_03" value="FALSE"/>
</DIUIOptions>
<DIParameterValues>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_NAME" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</DIExpression>
<DIExpression isString="true" expr="$L_VALIDATION_IND" >
<VARIABLE_REFERENCE name="$L_VALIDATION_IND" />
</DIExpression>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_LOCATION" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</DIExpression>
</DIParameterValues>
</DICallStep>
</DIIf>
<DIElse>
<DIScript>
<DIUIOptions>
<DIAttribute name="ui_display_name" value="SA_JOB_POLICY_ITEM_EXIT_SCRIPT"/>
<DIAttribute name="ui_script_text" value="ETL_PRINT('PREVIOS RUN OF WORKFLOW &gt;&gt; '||$L_WF_NAME||' FOR BATCH ID &gt;&gt; '||$G_BATCH_ID||' HAS FINISHED SUCCESSFULLY!');"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((((('PREVIOS RUN OF WORKFLOW &gt;&gt; ' || $L_WF_NAME) || ' FOR BATCH ID &gt;&gt; ') || $G_BATCH_ID) || ' HAS FINISHED SUCCESSFULLY!'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="PREVIOS RUN OF WORKFLOW &gt;&gt; " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</CONCAT>
<CONSTANT value=" FOR BATCH ID &gt;&gt; " datatype="VARCHAR" size="17" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</CONCAT>
<CONSTANT value=" HAS FINISHED SUCCESSFULLY!" datatype="VARCHAR" size="27" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DIElse>
</DIIfStep>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This script that calls the custom function that closes the metadata records that are part of tracking the workflow process."/>
<DIAttribute name="ui_display_name" value="SA_JOB_POLICY_ITEM_FF_EXT_END_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK END OF WORKFLOW&#xD;&#xA;ABC_ENDWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID);"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_endwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_endwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
<DICatch typeId="20" errorCode="210101" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The workflow catch object is the end of the TRY/CATCH block in BO DS.  This catch block contains the script object that calls a custom fail workflow function used to write the metadata for failed jobs."/>
<DIAttribute name="ui_display_name" value="SA_JOB_POLICY_ITEM_FF_EXT_CATCH"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that is used to write the metadata for failed workflows."/>
<DIAttribute name="ui_display_name" value="SA_JOB_POLICY_ITEM_FF_EXT_FAIL_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK FAIL OF WORKFLOW&#xD;&#xA;ABC_FAILWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID, 'Error: \[' || error_number() || '\] ' || error_message());"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_failwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID, ((('Error: \\[' || error_number()) || '\\] ') || error_message()))" >
<FUNCTION_CALL name="abc_failwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="Error: \[" datatype="VARCHAR" size="9" />
<FUNCTION_CALL name="error_number"  type="DI" />
</CONCAT>
<CONSTANT value="\] " datatype="VARCHAR" size="3" />
</CONCAT>
<FUNCTION_CALL name="error_message"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
</DICatch>
</DITryStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIDataflow name="SA_JOB_POLICY_ITEM_FF_EXT_DF" typeId="1" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Description" value="The dataflow that loads delta data from the flat file extracts into the EXT tables.  The data structure of the EXT tables will be the same as the flat file extracts.  All data will be sourced from the flat files.  The data that is sourced will be processed through a validation transformation when possible to make sure that data is usable.  All data that is determined to be not processable will be loaded into the table VALF tables.  VALF tables contain only those records which failed the validation check and were deemed unusable."/>
</DIProperties>
<DIParameters>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$P_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="255" >
</DIElement>
</DIParameters>
<DITransforms>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The query transform QRY_EXTRACT sources data from the specific flat file.  All data from the source file is pulled into the data flow."/>
<DIAttribute name="ui_acta_from_schema_0" value="SA_JOB_POLICY_ITEM"/>
<DIAttribute name="ui_display_name" value="QRY_EXTRACT"/>
</DIUIOptions>
<DISchema name="QRY_EXTRACT" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_POLICY_ITEM.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_POLICY_ITEM.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_POLICY_ITEM.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYITEMID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_POLICY_ITEM.POLICYITEMID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_JOB_POLICY_ITEM.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="JOBID||':'||SERVERID||':'||POLICYID||':'||POLICYITEMID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="upper(JOBID||':'||SERVERID||':'||POLICYID||':'||POLICYITEMID)"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="SA_JOB_POLICY_ITEM.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_POLICY_ITEM" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_POLICY_ITEM.JOBID" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_POLICY_ITEM" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_POLICY_ITEM.POLICYID" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_POLICY_ITEM" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_POLICY_ITEM.POLICYITEMID" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_POLICY_ITEM" column="POLICYITEMID" />
</DIExpression>
<DIExpression isString="true" expr="SA_JOB_POLICY_ITEM.SERVERID" >
<COLUMN_REFERENCE  qualifier1="SA_JOB_POLICY_ITEM" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="((((((JOBID || ':') || SERVERID) || ':') || POLICYID) || ':') || POLICYITEMID)" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<COLUMN_REFERENCE  column="JOBID" />
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="SERVERID" />
</CONCAT>
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="POLICYID" />
</CONCAT>
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="POLICYITEMID" />
</CONCAT>
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
<DIExpression isString="true" expr="upper(((((((JOBID || ':') || SERVERID) || ':') || POLICYID) || ':') || POLICYITEMID))" >
<FUNCTION_CALL name="upper"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<COLUMN_REFERENCE  column="JOBID" />
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="SERVERID" />
</CONCAT>
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="POLICYID" />
</CONCAT>
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="POLICYITEMID" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="SA_JOB_POLICY_ITEM" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>


<!-- GUID is optional -->
<DITransformCall typeId="210" name="Case_Operation"  >
<DIUIOptions>
<DIAttribute name="CS_VALIDATION_VALIDATION_OFF" value="$P_VALIDATION_IND ='OFF'"/>
<DIAttribute name="CS_VALIDATION_VALIDATION_ON" value="$P_VALIDATION_IND ='ON'"/>
<DIAttribute name="ObjectDesc" value="The case transform CS_VALIDATION routes the data in the dataflow to a validation transform if the variable $P_VALIDATION_IND is on. This variable allows the process to turn validations on and off."/>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_MARK_LATEST"/>
<DIAttribute name="ui_display_name" value="CS_VALIDATION"/>
</DIUIOptions>
<DIInputView name="QRY_MARK_LATEST" />
<DISchema name="CS_VALIDATION" >
</DISchema>
<DICase>
<DISwitch label="VALIDATION_ON" outputView="CS_VALIDATION_VALIDATION_ON" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'ON')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="ON" datatype="VARCHAR" size="2" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
<DISwitch label="VALIDATION_OFF" outputView="CS_VALIDATION_VALIDATION_OFF" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'OFF')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="OFF" datatype="VARCHAR" size="3" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
</DICase>
<DIAttributes>
<DIAttribute name="Mutually_Exclusive" value="no"/>
<DIAttribute name="Preserve_Expression_Order" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Merge" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The merge transformation MRG_PASS_FAIL combines the data streams when validation is on or off.  This allows us to have a single target instance in the data flow."/>
<DIAttribute name="ui_display_name" value="MRG_PASS_FAIL"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_OFF"  />
<DIInputView name="Validation_Pass"  />
<DISchema name="MRG_PASS_FAIL" >
</DISchema>
</DITransformCall>
<DITransformCall typeId="111" name="Validation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The validation transform applies validation rules to specific data fields.  If a record is sourced from the flat file and fails validation, the record will be flagged as invalid and will be loaded into the table {SOURCE TABLE}_VALF."/>
<DIAttribute name="ui_display_name" value="Validation"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_ON"  />
<DISchema name="Validation_Pass" >
</DISchema>
<DISchema name="Validation_Fail" >
</DISchema>
<DIAttributes>
<DIAttribute name="validation_rules" hasNestedXMLTree ="true">
<Rules collectData="false" collectStats="false">
              <Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE" noValidationWhenNull="false">
                <RuleName/>
                <Description/>
                <Expression uiSelection="1">
                  <UIValue1>=</UIValue1>
                  <UIValue2>1</UIValue2>
                  <Custom>CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE = 1</Custom>
                </Expression>
                <Action sendTo="0" substOnFail="false" substValue=""/>
              </Column>
              <Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY" noValidationWhenNull="false">
                <RuleName>BUSINESS KEY IS NULL</RuleName>
                <Description/>
                <Expression uiSelection="6">
                  <UIValue1>IS NOT NULL</UIValue1>
                  <UIValue2/>
                  <Custom>CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY  is not null and CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY &lt;&gt; &apos;&apos;</Custom>
                </Expression>
                <Action sendTo="0" substOnFail="false" substValue=""/>
              </Column>
            </Rules>
</DIAttribute>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Table_Comparison" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Compare SRC_LASTMODDATE to the snapshot table to determine if it is a new record or an update"/>
<DIAttribute name="ui_display_name" value="TC_SA_JOB_POLICY_ITEM_TSNP"/>
</DIUIOptions>
<DIInputView name="QRY_SORT"  />
<DISchema name="SA_JOB_POLICY_ITEM_TSNP" >
</DISchema>
<DIAttributes>
<DIAttribute name="cache_comparison_table" value="no"/>
<DIAttribute name="database_datastore" value="SRCSTAGING_DS"/>
<DIAttribute name="detect_all_dup_deletes" value="no"/>
<DIAttribute name="detect_delete" value="no"/>
<DIAttribute name="primary_key_column1" value="MD_BUSINESS_KEY"/>
<DIAttribute name="primary_key_column2" value="MD_CP_ID"/>
<DIAttribute name="run_as_separate_process" value="no"/>
<DIAttribute name="source_is_sorted" value="yes"/>
<DIAttribute name="table_name" value="SA_JOB_POLICY_ITEM_TSNP"/>
<DIAttribute name="table_owner" value="SRCSTAGING_ALIAS"/>
<DIAttribute name="update_cache" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This map operation filters out all records that are not inserts, and changes the handling of these records from Insert to Normal"/>
<DIAttribute name="ui_display_name" value="MO_INSERT_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_JOB_POLICY_ITEM_TSNP"  />
<DISchema name="MO_INSERT_TO_NORMAL_1" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="normal"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="discard"/>
</DIAttributes>
</DITransformCall>
<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_JOB_POLICY_ITEM_EXT" >
<DIInputView name="Merge"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit/>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>0</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>truncate</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_JOB_POLICY_ITEM_VALF" >
<DIInputView name="QRY_FAIL"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit>1000</bulk_ldr_rows_per_commit>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>1</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>append</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Query the failed records, adding the error, batch, and process information"/>
<DIAttribute name="ui_acta_from_schema_0" value="Validation_Fail"/>
<DIAttribute name="ui_display_name" value="QRY_FAIL"/>
</DIUIOptions>
<DISchema name="QRY_FAIL" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYITEMID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.POLICYITEMID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORACTION" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.DI_ERRORACTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="ifthenelse(Validation_Fail.MD_BUSINESS_KEY IS NULL OR Validation_Fail.MD_BUSINESS_KEY='', 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING','Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="Validation_Fail.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.JOBID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.POLICYID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.POLICYITEMID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="POLICYITEMID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.SERVERID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.DI_ERRORACTION" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="DI_ERRORACTION" />
</DIExpression>
<DIExpression isString="true" expr="ifthenelse(((Validation_Fail.MD_BUSINESS_KEY IS  NULL ) OR&#xA;   (Validation_Fail.MD_BUSINESS_KEY = '')), 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING', 'Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')" >
<FUNCTION_CALL name="ifthenelse"  type="DI" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="IS NULL">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</LOGICAL_OP>
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
<CONSTANT value="" datatype="VARCHAR" size="0" />
</LOGICAL_OP>
</LOGICAL_OP>
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING" datatype="VARCHAR" size="63" />
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE" datatype="VARCHAR" size="52" />
</FUNCTION_CALL>
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="Validation_Fail" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_SORT_BK"/>
<DIAttribute name="ui_display_name" value="QRY_MARK_LATEST"/>
</DIUIOptions>
<DISchema name="QRY_MARK_LATEST" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYITEMID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.POLICYITEMID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MARK_DUPLICATE" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="is_group_changed( QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER )"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.JOBID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.POLICYID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.POLICYITEMID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="POLICYITEMID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.SERVERID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="is_group_changed(QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER)" >
<FUNCTION_CALL name="is_group_changed"  type="DI" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY_FOR_ORDER" />
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_SORT_BK" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIFileSource typeId="33" formatName="SA_JOB_POLICY_ITEM" filename="$P_DYNAMIC_FILE_NAME" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="&quot;$P_DYNAMIC_FILE_NAME&quot;(SA_JOB_POLICY_ITEM)"/>
</DIUIOptions>
<DIOutputView name="SA_JOB_POLICY_ITEM"  />
<DIAttributes>
<DIAttribute name="adaptable" value="no"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="name" value="SA_JOB_POLICY_ITEM"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_filename_col" value="DI_FILENAME"/>
<DIAttribute name="reader_filename_col_size" value="100"/>
<DIAttribute name="reader_filename_only" value="yes"/>
<DIAttribute name="reader_include_filename" value="no"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$P_DYNAMIC_FILE_LOCATION"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="transfer_custom" value="no"/>
</DIAttributes>
</DIFileSource>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_INSERT_TO_NORMAL_1"/>
<DIAttribute name="ui_display_name" value="QRY_NEW"/>
</DIUIOptions>
<DISchema name="QRY_NEW" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYITEMID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.POLICYITEMID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_NEW "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.JOBID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.POLICYID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.POLICYITEMID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="POLICYITEMID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.SERVERID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_NEW" >
<VARIABLE_REFERENCE name="$G_FLAG_NEW" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_INSERT_TO_NORMAL_1" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MRG_PASS_FAIL"/>
<DIAttribute name="ui_display_name" value="QRY_SORT"/>
<DIAttribute name="ui_where_text" value="MRG_PASS_FAIL.MARK_DUPLICATE=1"/>
</DIUIOptions>
<DISchema name="QRY_SORT" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYITEMID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.POLICYITEMID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.JOBID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.POLICYID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.POLICYITEMID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="POLICYITEMID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.SERVERID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MRG_PASS_FAIL" />
</DIFrom>
<DIWhere>
<DIExpression isString="true" expr="(MRG_PASS_FAIL.MARK_DUPLICATE = 1)" >
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MARK_DUPLICATE" />
<CONSTANT value="1" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
</DIWhere>
<DIOrderBys>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_EXTRACT"/>
<DIAttribute name="ui_display_name" value="QRY_SORT_BK"/>
</DIUIOptions>
<DISchema name="QRY_SORT_BK" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYITEMID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.POLICYITEMID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.JOBID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.POLICYID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.POLICYITEMID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="POLICYITEMID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.SERVERID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_EXTRACT" />
</DIFrom>
<DIOrderBys>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="JOBENDDATE" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="MO_UPDATE_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_JOB_POLICY_ITEM_TSNP"  />
<DISchema name="MO_UPDATE_TO_NORMAL" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="discard"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="normal"/>
</DIAttributes>
</DITransformCall>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_UPDATE_TO_NORMAL"/>
<DIAttribute name="ui_display_name" value="QRY_UPDATE"/>
</DIUIOptions>
<DISchema name="QRY_UPDATE" >
<DIElement name="JOBENDDATE" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="JOBID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.JOBID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYITEMID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.POLICYITEMID"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_UPDATE "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBENDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.JOBID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="JOBID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.POLICYID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.POLICYITEMID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="POLICYITEMID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.SERVERID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_UPDATE" >
<VARIABLE_REFERENCE name="$G_FLAG_UPDATE" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_UPDATE_TO_NORMAL" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Merge" >
<DIInputView name="QRY_NEW"  />
<DIInputView name="QRY_UPDATE"  />
<DISchema name="Merge" >
</DISchema>
</DITransformCall>
</DITransforms>
<DIAttributes>
<DIAttribute name="Cache_type" value="pageable_cache"/>
<DIAttribute name="Parallelism_degree" value="0"/>
<DIAttribute name="allows_both_input_and_output" value="yes"/>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="use_dataflow_links" value="no"/>
<DIAttribute name="use_datastore_links" value="yes"/>
<DIAttribute name="validation_xform_exists" value="yes"/>
<DIAttribute name="validation_xform_stats" value="no"/>
</DIAttributes>
</DIDataflow>
<DIWorkflow name="SA_POLICY_RESULT_FF_EXT_WF" typeId="2" >
<DIProperties>
<DIAttribute name="Description" value="This workflow is responsible for loading the delta records found in the flat file extracts into the EXT tables."/>
</DIProperties>
<DIVariables>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_TABLE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_WF_NAME" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_MAX_WF_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_LATEST_WF_STATUS" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_SOURCE_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
</DIVariables>
<DISteps>
<DITryStep typeId="13" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The Try of the Try / Catch Block"/>
<DIAttribute name="ui_display_name" value="SA_POLICY_RESULT_FF_EXT_TRY"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that initiates the metadata tracking for the workflow. The script will also be used to populate the local workflow variables."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_RESULT_FF_EXT_START_SC"/>
<DIAttribute name="ui_script_text" value="#WORKFLOW NAME&#xD;&#xA;$L_WF_NAME = workflow_name()||$G_CONTENT_PACK_ID;&#xD;&#xA;&#xD;&#xA;# GET MAX PROCESS_ID OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID&#xD;&#xA;$L_MAX_WF_PROCESS_ID=M_ICPS_GET_MAX_WF_PROCESS_ID($G_BATCH_ID,$L_WF_NAME,job_name( ));&#xD;&#xA;&#xD;&#xA;# GET LAST EXECUTION STATUS OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID, ACCORDING TO MAX PROCESS_ID&#xD;&#xA;$L_LATEST_WF_STATUS =M_ICPS_GET_WF_STATUS($L_MAX_WF_PROCESS_ID,$L_WF_NAME );&#xD;&#xA;&#xD;&#xA;# CALL FUNCTION TO TRACK START OF WORKFLOW&#xD;&#xA;ABC_STARTWF_FN($L_WF_NAME, $G_PROCESS_ID);&#xD;&#xA;&#xD;&#xA;# ASSIGN TABLE NAME VALUE TO BE USED TO LOOKUP THE VALIDATION_STATUS ON THE VALIDATION REFERENCE TABLE AS NECESSARY&#xD;&#xA;$L_ENTITY_NAME ='POLICY_RESULT';&#xD;&#xA;$L_TABLE_NAME = $G_PRODUCT_NAME ||'_'||$L_ENTITY_NAME ;&#xD;&#xA;$L_VALIDATION_IND = GET_VALIDATION_STATUS_FN($G_ENABLE_VAL, $L_TABLE_NAME);&#xD;&#xA;&#xD;&#xA;# CLEAN PREIOUSLY LOADED DATA FROM DB TABLE, FOR CASES OF RE-RUN AFTER FAILURE&#xD;&#xA;if ($L_MAX_WF_PROCESS_ID is not null and $L_LATEST_WF_STATUS &lt;&gt; 'SUCCESS')&#xD;&#xA;begin&#xD;&#xA;&#x9;M_ICPS_RERUN_CLEANUP ( $L_TABLE_NAME ||'_EXT',$G_BATCH_ID , $L_MAX_WF_PROCESS_ID ,$G_CONTENT_PACK_ID);&#xD;&#xA;end &#xD;&#xA;&#xD;&#xA;# ASSIGN FILE NAME AND FILE LOCATION VALUES&#xD;&#xA;$L_SOURCE_ENTITY_NAME= METADATA_GET_SOURCE_ENTITY_NAME($L_ENTITY_NAME);&#xD;&#xA;&#xD;&#xA;$L_DYNAMIC_FILE_LOCATION = $G_SA_FILELOCATION ;&#xD;&#xA;$L_DYNAMIC_FILE_NAME = $G_PRODUCT_NAME||'_'||$L_SOURCE_ENTITY_NAME||'_'||$G_CONTENT_PACK_ID||'_EXTRACT_FF.TXT';&#xD;&#xA;&#xD;&#xA;# PRINT PARAMETERS USED BASED ON TRACE MODE&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;ETL_PRINT('This EXT Process will read any file named '||$L_DYNAMIC_FILE_NAME); &#xD;&#xA;ETL_PRINT('The File is located in the '||$L_DYNAMIC_FILE_LOCATION||' directory.' );&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
</DIUIOptions>
<DIAssignmentStep typeId="12" variable="$L_WF_NAME" >
<DIExpression isString="true" expr="(workflow_name() || $G_CONTENT_PACK_ID)" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_MAX_WF_PROCESS_ID" >
<DIExpression isString="true" expr="m_icps_get_max_wf_process_id($G_BATCH_ID, $L_WF_NAME, job_name())" >
<FUNCTION_CALL name="m_icps_get_max_wf_process_id"  type="DI" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<FUNCTION_CALL name="job_name"  type="DI" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_LATEST_WF_STATUS" >
<DIExpression isString="true" expr="m_icps_get_wf_status($L_MAX_WF_PROCESS_ID, $L_WF_NAME)" >
<FUNCTION_CALL name="m_icps_get_wf_status"  type="DI" >
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_startwf_fn($L_WF_NAME, $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_startwf_fn"  type="DI" >
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$L_ENTITY_NAME" >
<DIExpression isString="true" expr="'POLICY_RESULT'" >
<CONSTANT value="POLICY_RESULT" datatype="VARCHAR" size="13" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_TABLE_NAME" >
<DIExpression isString="true" expr="(($G_PRODUCT_NAME || '_') || $L_ENTITY_NAME)" >
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_VALIDATION_IND" >
<DIExpression isString="true" expr="get_validation_status_fn($G_ENABLE_VAL, $L_TABLE_NAME)" >
<FUNCTION_CALL name="get_validation_status_fn"  type="DI" >
<VARIABLE_REFERENCE name="$G_ENABLE_VAL" />
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIIfStep typeId="2" >
<DIExpression isString="true" expr="(($L_MAX_WF_PROCESS_ID IS NOT  NULL ) AND&#xA;   ($L_LATEST_WF_STATUS != 'SUCCESS'))" >
<LOGICAL_OP op="AND">
<LOGICAL_OP op="IS NOT NULL">
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
</LOGICAL_OP>
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="m_icps_rerun_cleanup(($L_TABLE_NAME || '_EXT'), $G_BATCH_ID, $L_MAX_WF_PROCESS_ID, $G_CONTENT_PACK_ID)" >
<FUNCTION_CALL name="m_icps_rerun_cleanup"  type="DI" >
<CONCAT>
<VARIABLE_REFERENCE name="$L_TABLE_NAME" />
<CONSTANT value="_EXT" datatype="VARCHAR" size="4" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIIf>
<DIElse>
</DIElse>
</DIIfStep>
<DIAssignmentStep typeId="12" variable="$L_SOURCE_ENTITY_NAME" >
<DIExpression isString="true" expr="metadata_get_source_entity_name($L_ENTITY_NAME)" >
<FUNCTION_CALL name="metadata_get_source_entity_name"  type="DI" >
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_LOCATION" >
<DIExpression isString="true" expr="$G_SA_FILELOCATION" >
<VARIABLE_REFERENCE name="$G_SA_FILELOCATION" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_NAME" >
<DIExpression isString="true" expr="((((($G_PRODUCT_NAME || '_') || $L_SOURCE_ENTITY_NAME) || '_') || $G_CONTENT_PACK_ID) || '_EXTRACT_FF.TXT')" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_SOURCE_ENTITY_NAME" />
</CONCAT>
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<CONSTANT value="_EXTRACT_FF.TXT" datatype="VARCHAR" size="15" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('This EXT Process will read any file named ' || $L_DYNAMIC_FILE_NAME))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="This EXT Process will read any file named " datatype="VARCHAR" size="42" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('The File is located in the ' || $L_DYNAMIC_FILE_LOCATION) || ' directory.'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="The File is located in the " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</CONCAT>
<CONSTANT value=" directory." datatype="VARCHAR" size="11" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
<DIIfStep typeId="2" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="If_condition" value="$L_LATEST_WF_STATUS&lt;&gt;'SUCCESS' or $L_LATEST_WF_STATUS is null"/>
<DIAttribute name="ui_display_name" value="SA_POLICY_RESULT_FF_EXT_CONDITION"/>
</DIUIOptions>
<DIExpression isString="true" expr="(($L_LATEST_WF_STATUS != 'SUCCESS') OR&#xA;   ($L_LATEST_WF_STATUS IS  NULL ))" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DICallStep typeId="1"  calledObjectType="Dataflow" name="SA_POLICY_RESULT_FF_EXT_DF" >
<DIUIOptions>
<DIAttribute name="ParmDefaulted_01" value="FALSE"/>
<DIAttribute name="ParmDefaulted_02" value="FALSE"/>
<DIAttribute name="ParmDefaulted_03" value="FALSE"/>
</DIUIOptions>
<DIParameterValues>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_NAME" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME" />
</DIExpression>
<DIExpression isString="true" expr="$L_VALIDATION_IND" >
<VARIABLE_REFERENCE name="$L_VALIDATION_IND" />
</DIExpression>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_LOCATION" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</DIExpression>
</DIParameterValues>
</DICallStep>
</DIIf>
<DIElse>
<DIScript>
<DIUIOptions>
<DIAttribute name="ui_display_name" value="SA_POLICY_RESULT_EXIT_SCRIPT"/>
<DIAttribute name="ui_script_text" value="ETL_PRINT('PREVIOS RUN OF WORKFLOW &gt;&gt; '||$L_WF_NAME||' FOR BATCH ID &gt;&gt; '||$G_BATCH_ID||' HAS FINISHED SUCCESSFULLY!');"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((((('PREVIOS RUN OF WORKFLOW &gt;&gt; ' || $L_WF_NAME) || ' FOR BATCH ID &gt;&gt; ') || $G_BATCH_ID) || ' HAS FINISHED SUCCESSFULLY!'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="PREVIOS RUN OF WORKFLOW &gt;&gt; " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</CONCAT>
<CONSTANT value=" FOR BATCH ID &gt;&gt; " datatype="VARCHAR" size="17" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</CONCAT>
<CONSTANT value=" HAS FINISHED SUCCESSFULLY!" datatype="VARCHAR" size="27" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DIElse>
</DIIfStep>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This script that calls the custom function that closes the metadata records that are part of tracking the workflow process."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_RESULT_FF_EXT_END_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK END OF WORKFLOW&#xD;&#xA;ABC_ENDWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID);"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_endwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_endwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
<DICatch typeId="20" errorCode="210101" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The workflow catch object is the end of the TRY/CATCH block in BO DS.  This catch block contains the script object that calls a custom fail workflow function used to write the metadata for failed jobs."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_RESULT_FF_EXT_CATCH"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that is used to write the metadata for failed workflows."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_RESULT_FF_EXT_FAIL_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK FAIL OF WORKFLOW&#xD;&#xA;ABC_FAILWF_FN(workflow_name()||$G_CONTENT_PACK_ID, $G_PROCESS_ID, 'Error: \[' || error_number() || '\] ' || error_message());"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_failwf_fn((workflow_name() || $G_CONTENT_PACK_ID), $G_PROCESS_ID, ((('Error: \\[' || error_number()) || '\\] ') || error_message()))" >
<FUNCTION_CALL name="abc_failwf_fn"  type="DI" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="Error: \[" datatype="VARCHAR" size="9" />
<FUNCTION_CALL name="error_number"  type="DI" />
</CONCAT>
<CONSTANT value="\] " datatype="VARCHAR" size="3" />
</CONCAT>
<FUNCTION_CALL name="error_message"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
</DICatch>
</DITryStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIDataflow name="SA_POLICY_RESULT_FF_EXT_DF" typeId="1" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Description" value="The dataflow that loads delta data from the flat file extracts into the EXT tables.  The data structure of the EXT tables will be the same as the flat file extracts.  All data will be sourced from the flat files.  The data that is sourced will be processed through a validation transformation when possible to make sure that data is usable.  All data that is determined to be not processable will be loaded into the table VALF tables.  VALF tables contain only those records which failed the validation check and were deemed unusable."/>
</DIProperties>
<DIParameters>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$P_VALIDATION_IND" datatype="VARCHAR" size="3" >
</DIElement>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="255" >
</DIElement>
</DIParameters>
<DITransforms>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The query transform QRY_EXTRACT sources data from the specific flat file.  All data from the source file is pulled into the data flow."/>
<DIAttribute name="ui_acta_from_schema_0" value="SA_POLICY_RESULT"/>
<DIAttribute name="ui_display_name" value="QRY_EXTRACT"/>
</DIUIOptions>
<DISchema name="QRY_EXTRACT" >
<DIElement name="AUDITRESULTID" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY_RESULT.AUDITRESULTID"/>
</DIAttributes>
</DIElement>
<DIElement name="ENDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY_RESULT.ENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY_RESULT.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESFAILEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY_RESULT.RULESFAILEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESPASSEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY_RESULT.RULESPASSEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESRUNCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY_RESULT.RULESRUNCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="STARTDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY_RESULT.STARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY_RESULT.TARGETCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSERVERID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY_RESULT.TARGETSERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SA_POLICY_RESULT.TARGETSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="AUDITRESULTID||':'||TARGETSERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="upper(AUDITRESULTID||':'||TARGETSERVERID)"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="SA_POLICY_RESULT.AUDITRESULTID" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY_RESULT" column="AUDITRESULTID" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY_RESULT.ENDDATE" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY_RESULT" column="ENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY_RESULT.POLICYID" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY_RESULT" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY_RESULT.RULESFAILEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY_RESULT" column="RULESFAILEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY_RESULT.RULESPASSEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY_RESULT" column="RULESPASSEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY_RESULT.RULESRUNCOUNT" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY_RESULT" column="RULESRUNCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY_RESULT.STARTDATE" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY_RESULT" column="STARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY_RESULT.TARGETCOUNT" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY_RESULT" column="TARGETCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY_RESULT.TARGETSERVERID" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY_RESULT" column="TARGETSERVERID" />
</DIExpression>
<DIExpression isString="true" expr="SA_POLICY_RESULT.TARGETSTATUS" >
<COLUMN_REFERENCE  qualifier1="SA_POLICY_RESULT" column="TARGETSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="((AUDITRESULTID || ':') || TARGETSERVERID)" >
<CONCAT>
<CONCAT>
<COLUMN_REFERENCE  column="AUDITRESULTID" />
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="TARGETSERVERID" />
</CONCAT>
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
<DIExpression isString="true" expr="upper(((AUDITRESULTID || ':') || TARGETSERVERID))" >
<FUNCTION_CALL name="upper"  type="DI" >
<CONCAT>
<CONCAT>
<COLUMN_REFERENCE  column="AUDITRESULTID" />
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="TARGETSERVERID" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="SA_POLICY_RESULT" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>


<!-- GUID is optional -->
<DITransformCall typeId="210" name="Case_Operation"  >
<DIUIOptions>
<DIAttribute name="CS_VALIDATION_VALIDATION_OFF" value="$P_VALIDATION_IND ='OFF'"/>
<DIAttribute name="CS_VALIDATION_VALIDATION_ON" value="$P_VALIDATION_IND ='ON'"/>
<DIAttribute name="ObjectDesc" value="The case transform CS_VALIDATION routes the data in the dataflow to a validation transform if the variable $P_VALIDATION_IND is on. This variable allows the process to turn validations on and off."/>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_MARK_LATEST"/>
<DIAttribute name="ui_display_name" value="CS_VALIDATION"/>
</DIUIOptions>
<DIInputView name="QRY_MARK_LATEST" />
<DISchema name="CS_VALIDATION" >
</DISchema>
<DICase>
<DISwitch label="VALIDATION_ON" outputView="CS_VALIDATION_VALIDATION_ON" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'ON')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="ON" datatype="VARCHAR" size="2" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
<DISwitch label="VALIDATION_OFF" outputView="CS_VALIDATION_VALIDATION_OFF" isDefault="false">
<DIExpression isString="true" expr="($P_VALIDATION_IND = 'OFF')" >
<LOGICAL_OP op="EQ">
<VARIABLE_REFERENCE name="$P_VALIDATION_IND" />
<CONSTANT value="OFF" datatype="VARCHAR" size="3" />
</LOGICAL_OP>
</DIExpression>
</DISwitch>
</DICase>
<DIAttributes>
<DIAttribute name="Mutually_Exclusive" value="no"/>
<DIAttribute name="Preserve_Expression_Order" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Merge" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The merge transformation MRG_PASS_FAIL combines the data streams when validation is on or off.  This allows us to have a single target instance in the data flow."/>
<DIAttribute name="ui_display_name" value="MRG_PASS_FAIL"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_OFF"  />
<DIInputView name="Validation_Pass"  />
<DISchema name="MRG_PASS_FAIL" >
</DISchema>
</DITransformCall>
<DITransformCall typeId="111" name="Validation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The validation transform applies validation rules to specific data fields.  If a record is sourced from the flat file and fails validation, the record will be flagged as invalid and will be loaded into the table {SOURCE TABLE}_VALF."/>
<DIAttribute name="ui_display_name" value="Validation"/>
</DIUIOptions>
<DIInputView name="CS_VALIDATION_VALIDATION_ON"  />
<DISchema name="Validation_Pass" >
</DISchema>
<DISchema name="Validation_Fail" >
</DISchema>
<DIAttributes>
<DIAttribute name="validation_rules" hasNestedXMLTree ="true">
<Rules collectData="false" collectStats="false">
              <Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE" noValidationWhenNull="false">
                <RuleName/>
                <Description/>
                <Expression uiSelection="1">
                  <UIValue1>=</UIValue1>
                  <UIValue2>1</UIValue2>
                  <Custom>CS_VALIDATION_VALIDATION_ON.MARK_DUPLICATE = 1</Custom>
                </Expression>
                <Action sendTo="0" substOnFail="false" substValue=""/>
              </Column>
              <Column enableValidation="true" name="CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY" noValidationWhenNull="false">
                <RuleName>BUSINESS KEY IS NULL</RuleName>
                <Description/>
                <Expression uiSelection="6">
                  <UIValue1>IS NOT NULL</UIValue1>
                  <UIValue2/>
                  <Custom>CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY  is not null and CS_VALIDATION_VALIDATION_ON.MD_BUSINESS_KEY &lt;&gt; &apos;&apos;</Custom>
                </Expression>
                <Action sendTo="0" substOnFail="false" substValue=""/>
              </Column>
            </Rules>
</DIAttribute>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Table_Comparison" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Compare SRC_LASTMODDATE to the snapshot table to determine if it is a new record or an update"/>
<DIAttribute name="ui_display_name" value="TC_SA_POLICY_RESULT_TSNP"/>
</DIUIOptions>
<DIInputView name="QRY_SORT"  />
<DISchema name="SA_POLICY_RESULT_TSNP" >
</DISchema>
<DIAttributes>
<DIAttribute name="cache_comparison_table" value="no"/>
<DIAttribute name="database_datastore" value="SRCSTAGING_DS"/>
<DIAttribute name="detect_all_dup_deletes" value="no"/>
<DIAttribute name="detect_delete" value="no"/>
<DIAttribute name="primary_key_column1" value="MD_BUSINESS_KEY"/>
<DIAttribute name="primary_key_column2" value="MD_CP_ID"/>
<DIAttribute name="run_as_separate_process" value="no"/>
<DIAttribute name="source_is_sorted" value="yes"/>
<DIAttribute name="table_name" value="SA_POLICY_RESULT_TSNP"/>
<DIAttribute name="table_owner" value="SRCSTAGING_ALIAS"/>
<DIAttribute name="update_cache" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This map operation filters out all records that are not inserts, and changes the handling of these records from Insert to Normal"/>
<DIAttribute name="ui_display_name" value="MO_INSERT_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_POLICY_RESULT_TSNP"  />
<DISchema name="MO_INSERT_TO_NORMAL_1" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="normal"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="discard"/>
</DIAttributes>
</DITransformCall>
<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_POLICY_RESULT_EXT" >
<DIInputView name="Merge"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit/>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>0</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>truncate</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_POLICY_RESULT_VALF" >
<DIInputView name="QRY_FAIL"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit>1000</bulk_ldr_rows_per_commit>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>1</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>append</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="Query the failed records, adding the error, batch, and process information"/>
<DIAttribute name="ui_acta_from_schema_0" value="Validation_Fail"/>
<DIAttribute name="ui_display_name" value="QRY_FAIL"/>
</DIUIOptions>
<DISchema name="QRY_FAIL" >
<DIElement name="AUDITRESULTID" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.AUDITRESULTID"/>
</DIAttributes>
</DIElement>
<DIElement name="ENDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.ENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESFAILEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.RULESFAILEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESPASSEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.RULESPASSEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESRUNCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.RULESRUNCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="STARTDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.STARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.TARGETCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSERVERID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.TARGETSERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.TARGETSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORACTION" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.DI_ERRORACTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DI_ERRORCOLUMNS" datatype="VARCHAR" size="500" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="ifthenelse(Validation_Fail.MD_BUSINESS_KEY IS NULL OR Validation_Fail.MD_BUSINESS_KEY='', 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING','Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="Validation_Fail.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="Validation_Fail.AUDITRESULTID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="AUDITRESULTID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.ENDDATE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="ENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.POLICYID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.RULESFAILEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="RULESFAILEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.RULESPASSEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="RULESPASSEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.RULESRUNCOUNT" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="RULESRUNCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.STARTDATE" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="STARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.TARGETCOUNT" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="TARGETCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.TARGETSERVERID" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="TARGETSERVERID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.TARGETSTATUS" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="TARGETSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.DI_ERRORACTION" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="DI_ERRORACTION" />
</DIExpression>
<DIExpression isString="true" expr="ifthenelse(((Validation_Fail.MD_BUSINESS_KEY IS  NULL ) OR&#xA;   (Validation_Fail.MD_BUSINESS_KEY = '')), 'Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING', 'Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE')" >
<FUNCTION_CALL name="ifthenelse"  type="DI" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="IS NULL">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</LOGICAL_OP>
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
<CONSTANT value="" datatype="VARCHAR" size="0" />
</LOGICAL_OP>
</LOGICAL_OP>
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS NULL OR EMPTY STRING" datatype="VARCHAR" size="63" />
<CONSTANT value="Validation failed rule: MD_BUSINESS_KEY IS DUPLICATE" datatype="VARCHAR" size="52" />
</FUNCTION_CALL>
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="Validation_Fail.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="Validation_Fail" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="Validation_Fail" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_SORT_BK"/>
<DIAttribute name="ui_display_name" value="QRY_MARK_LATEST"/>
</DIUIOptions>
<DISchema name="QRY_MARK_LATEST" >
<DIElement name="AUDITRESULTID" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.AUDITRESULTID"/>
</DIAttributes>
</DIElement>
<DIElement name="ENDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.ENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESFAILEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.RULESFAILEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESPASSEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.RULESPASSEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESRUNCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.RULESRUNCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="STARTDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.STARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.TARGETCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSERVERID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.TARGETSERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.TARGETSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_SORT_BK.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MARK_DUPLICATE" datatype="INT" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="is_group_changed( QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER )"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_SORT_BK.AUDITRESULTID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="AUDITRESULTID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.ENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="ENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.POLICYID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.RULESFAILEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="RULESFAILEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.RULESPASSEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="RULESPASSEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.RULESRUNCOUNT" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="RULESRUNCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.STARTDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="STARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.TARGETCOUNT" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="TARGETCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.TARGETSERVERID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="TARGETSERVERID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.TARGETSTATUS" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="TARGETSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_SORT_BK.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="is_group_changed(QRY_SORT_BK.MD_BUSINESS_KEY_FOR_ORDER)" >
<FUNCTION_CALL name="is_group_changed"  type="DI" >
<COLUMN_REFERENCE  qualifier1="QRY_SORT_BK" column="MD_BUSINESS_KEY_FOR_ORDER" />
</FUNCTION_CALL>
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_SORT_BK" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIFileSource typeId="33" formatName="SA_POLICY_RESULT" filename="$P_DYNAMIC_FILE_NAME" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="&quot;$P_DYNAMIC_FILE_NAME&quot;(SA_POLICY_RESULT)"/>
</DIUIOptions>
<DIOutputView name="SA_POLICY_RESULT"  />
<DIAttributes>
<DIAttribute name="adaptable" value="no"/>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="name" value="SA_POLICY_RESULT"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_filename_col" value="DI_FILENAME"/>
<DIAttribute name="reader_filename_col_size" value="100"/>
<DIAttribute name="reader_filename_only" value="yes"/>
<DIAttribute name="reader_include_filename" value="no"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$P_DYNAMIC_FILE_LOCATION"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="transfer_custom" value="no"/>
</DIAttributes>
</DIFileSource>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_INSERT_TO_NORMAL_1"/>
<DIAttribute name="ui_display_name" value="QRY_NEW"/>
</DIUIOptions>
<DISchema name="QRY_NEW" >
<DIElement name="AUDITRESULTID" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.AUDITRESULTID"/>
</DIAttributes>
</DIElement>
<DIElement name="ENDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.ENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESFAILEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.RULESFAILEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESPASSEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.RULESPASSEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESRUNCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.RULESRUNCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="STARTDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.STARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.TARGETCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSERVERID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.TARGETSERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.TARGETSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_INSERT_TO_NORMAL_1.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_NEW "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.AUDITRESULTID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="AUDITRESULTID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.ENDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="ENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.POLICYID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.RULESFAILEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="RULESFAILEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.RULESPASSEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="RULESPASSEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.RULESRUNCOUNT" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="RULESRUNCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.STARTDATE" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="STARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.TARGETCOUNT" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="TARGETCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.TARGETSERVERID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="TARGETSERVERID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.TARGETSTATUS" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="TARGETSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_INSERT_TO_NORMAL_1.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_INSERT_TO_NORMAL_1" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_NEW" >
<VARIABLE_REFERENCE name="$G_FLAG_NEW" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_INSERT_TO_NORMAL_1" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MRG_PASS_FAIL"/>
<DIAttribute name="ui_display_name" value="QRY_SORT"/>
<DIAttribute name="ui_where_text" value="MRG_PASS_FAIL.MARK_DUPLICATE=1"/>
</DIUIOptions>
<DISchema name="QRY_SORT" >
<DIElement name="AUDITRESULTID" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.AUDITRESULTID"/>
</DIAttributes>
</DIElement>
<DIElement name="ENDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.ENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESFAILEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.RULESFAILEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESPASSEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.RULESPASSEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESRUNCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.RULESRUNCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="STARTDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.STARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.TARGETCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSERVERID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.TARGETSERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.TARGETSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MRG_PASS_FAIL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MRG_PASS_FAIL.AUDITRESULTID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="AUDITRESULTID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.ENDDATE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="ENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.POLICYID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.RULESFAILEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="RULESFAILEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.RULESPASSEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="RULESPASSEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.RULESRUNCOUNT" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="RULESRUNCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.STARTDATE" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="STARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.TARGETCOUNT" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="TARGETCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.TARGETSERVERID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="TARGETSERVERID" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.TARGETSTATUS" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="TARGETSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MRG_PASS_FAIL" />
</DIFrom>
<DIWhere>
<DIExpression isString="true" expr="(MRG_PASS_FAIL.MARK_DUPLICATE = 1)" >
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MARK_DUPLICATE" />
<CONSTANT value="1" datatype="INT" />
</LOGICAL_OP>
</DIExpression>
</DIWhere>
<DIOrderBys>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_BUSINESS_KEY" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="MRG_PASS_FAIL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MRG_PASS_FAIL" column="MD_CP_ID" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_EXTRACT"/>
<DIAttribute name="ui_display_name" value="QRY_SORT_BK"/>
</DIUIOptions>
<DISchema name="QRY_SORT_BK" >
<DIElement name="AUDITRESULTID" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.AUDITRESULTID"/>
</DIAttributes>
</DIElement>
<DIElement name="ENDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.ENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESFAILEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.RULESFAILEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESPASSEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.RULESPASSEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESRUNCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.RULESRUNCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="STARTDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.STARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.TARGETCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSERVERID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.TARGETSERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.TARGETSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY_FOR_ORDER" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_EXTRACT.AUDITRESULTID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="AUDITRESULTID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.ENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="ENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.POLICYID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.RULESFAILEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="RULESFAILEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.RULESPASSEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="RULESPASSEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.RULESRUNCOUNT" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="RULESRUNCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.STARTDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="STARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.TARGETCOUNT" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="TARGETCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.TARGETSERVERID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="TARGETSERVERID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.TARGETSTATUS" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="TARGETSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_EXTRACT" />
</DIFrom>
<DIOrderBys>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.MD_BUSINESS_KEY_FOR_ORDER" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="MD_BUSINESS_KEY_FOR_ORDER" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="DESC">
<DIExpression isString="true" expr="QRY_EXTRACT.ENDDATE" >
<COLUMN_REFERENCE  qualifier1="QRY_EXTRACT" column="ENDDATE" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ui_display_name" value="MO_UPDATE_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_POLICY_RESULT_TSNP"  />
<DISchema name="MO_UPDATE_TO_NORMAL" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="discard"/>
<DIAttribute name="insert" value="discard"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="normal"/>
</DIAttributes>
</DITransformCall>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="MO_UPDATE_TO_NORMAL"/>
<DIAttribute name="ui_display_name" value="QRY_UPDATE"/>
</DIUIOptions>
<DISchema name="QRY_UPDATE" >
<DIElement name="AUDITRESULTID" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.AUDITRESULTID"/>
</DIAttributes>
</DIElement>
<DIElement name="ENDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.ENDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESFAILEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.RULESFAILEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESPASSEDCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.RULESPASSEDCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="RULESRUNCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.RULESRUNCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="STARTDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.STARTDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETCOUNT" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.TARGETCOUNT"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSERVERID" datatype="VARCHAR" size="16" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.TARGETSERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="TARGETSTATUS" datatype="VARCHAR" size="100" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.TARGETSTATUS"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_UPDATE_TO_NORMAL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_UPDATE "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.AUDITRESULTID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="AUDITRESULTID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.ENDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="ENDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.POLICYID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.RULESFAILEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="RULESFAILEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.RULESPASSEDCOUNT" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="RULESPASSEDCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.RULESRUNCOUNT" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="RULESRUNCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.STARTDATE" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="STARTDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.TARGETCOUNT" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="TARGETCOUNT" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.TARGETSERVERID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="TARGETSERVERID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.TARGETSTATUS" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="TARGETSTATUS" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="MO_UPDATE_TO_NORMAL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_UPDATE_TO_NORMAL" column="MD_CP_ID" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_UPDATE" >
<VARIABLE_REFERENCE name="$G_FLAG_UPDATE" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_UPDATE_TO_NORMAL" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DITransformCall typeId="111" name="Merge" >
<DIInputView name="QRY_NEW"  />
<DIInputView name="QRY_UPDATE"  />
<DISchema name="Merge" >
</DISchema>
</DITransformCall>
</DITransforms>
<DIAttributes>
<DIAttribute name="Cache_type" value="pageable_cache"/>
<DIAttribute name="Parallelism_degree" value="0"/>
<DIAttribute name="allows_both_input_and_output" value="yes"/>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="use_dataflow_links" value="no"/>
<DIAttribute name="use_datastore_links" value="yes"/>
<DIAttribute name="validation_xform_exists" value="yes"/>
<DIAttribute name="validation_xform_stats" value="no"/>
</DIAttributes>
</DIDataflow>
<DIWorkflow name="SA_EXT_DELETE_GEN_CONT_WF" typeId="2" >
<DISteps>
<DIParallelStep typeId="11" >
<DISteps>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_SERVER_FF_EXT_DELETE_WF" >
</DICallStep>
<DICallStep typeId="0"  calledObjectType="Workflow" name="SA_POLICY_FF_EXT_DELETE_WF" >
</DICallStep>
</DISteps>
</DIParallelStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIWorkflow name="SA_SERVER_FF_EXT_DELETE_WF" typeId="2" >
<DIProperties>
<DIAttribute name="Description" value="This workflow is responsible for loading the records found in the EXTD flat file extracts, determining if a source record was deleted and pushing that record into the EXT tables to be marked as delete"/>
</DIProperties>
<DIVariables>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_NAME_EXTD" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_MAX_WF_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_WF_NAME" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_LATEST_WF_STATUS" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_SOURCE_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
</DIVariables>
<DISteps>
<DITryStep typeId="13" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The Try of the Try / Catch Block"/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_DELETE_TRY"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that initiates the metadata tracking for the workflow. The script will also be used to populate the local workflow variables."/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_DELETE_START_SC"/>
<DIAttribute name="ui_script_text" value="#WORKFLOW NAME&#xD;&#xA;$L_WF_NAME = workflow_name()||$G_CONTENT_PACK_ID;&#xD;&#xA;&#xD;&#xA;# GET MAX PROCESS_ID OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID&#xD;&#xA;$L_MAX_WF_PROCESS_ID=M_ICPS_GET_MAX_WF_PROCESS_ID($G_BATCH_ID,$L_WF_NAME,job_name( ));&#xD;&#xA;&#xD;&#xA;# GET LAST EXECUTION STATUS OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID, ACCORDING TO MAX PROCESS_ID&#xD;&#xA;$L_LATEST_WF_STATUS =M_ICPS_GET_WF_STATUS($L_MAX_WF_PROCESS_ID,$L_WF_NAME );&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;# CALL FUNCTION TO TRACK START OF WORKFLOW&#xD;&#xA;ABC_STARTWF_FN($L_WF_NAME, $G_PROCESS_ID);&#xD;&#xA;&#xD;&#xA;# ASSIGN TABLE NAME VALUE TO BE USED TO LOOKUP THE VALIDATION_STATUS ON THE VALIDATION REFERENCE TABLE AS NECESSARY&#xD;&#xA;$L_ENTITY_NAME ='SERVER';&#xD;&#xA;&#xD;&#xA;# ASSIGN FILE NAME AND FILE LOCATION VALUES&#xD;&#xA;$L_SOURCE_ENTITY_NAME= METADATA_GET_SOURCE_ENTITY_NAME($L_ENTITY_NAME);&#xD;&#xA;&#xD;&#xA;$L_DYNAMIC_FILE_LOCATION = $G_SA_FILELOCATION ;&#xD;&#xA;$L_DYNAMIC_FILE_NAME_EXTD = $G_PRODUCT_NAME||'_'||$L_SOURCE_ENTITY_NAME||'_'||$G_CONTENT_PACK_ID||'_EXTRACT_DELETE_FF.TXT';&#xD;&#xA;&#xD;&#xA;# PRINT PARAMETERS USED BASED ON TRACE MODE&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;ETL_PRINT('This EXT Process will read any file named '||$L_DYNAMIC_FILE_NAME_EXTD); &#xD;&#xA;ETL_PRINT('The File is located in the '||$L_DYNAMIC_FILE_LOCATION||' directory.' );&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
</DIUIOptions>
<DIAssignmentStep typeId="12" variable="$L_WF_NAME" >
<DIExpression isString="true" expr="(workflow_name() || $G_CONTENT_PACK_ID)" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_MAX_WF_PROCESS_ID" >
<DIExpression isString="true" expr="m_icps_get_max_wf_process_id($G_BATCH_ID, $L_WF_NAME, job_name())" >
<FUNCTION_CALL name="m_icps_get_max_wf_process_id"  type="DI" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<FUNCTION_CALL name="job_name"  type="DI" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_LATEST_WF_STATUS" >
<DIExpression isString="true" expr="m_icps_get_wf_status($L_MAX_WF_PROCESS_ID, $L_WF_NAME)" >
<FUNCTION_CALL name="m_icps_get_wf_status"  type="DI" >
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_startwf_fn($L_WF_NAME, $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_startwf_fn"  type="DI" >
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$L_ENTITY_NAME" >
<DIExpression isString="true" expr="'SERVER'" >
<CONSTANT value="SERVER" datatype="VARCHAR" size="6" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_SOURCE_ENTITY_NAME" >
<DIExpression isString="true" expr="metadata_get_source_entity_name($L_ENTITY_NAME)" >
<FUNCTION_CALL name="metadata_get_source_entity_name"  type="DI" >
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_LOCATION" >
<DIExpression isString="true" expr="$G_SA_FILELOCATION" >
<VARIABLE_REFERENCE name="$G_SA_FILELOCATION" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_NAME_EXTD" >
<DIExpression isString="true" expr="((((($G_PRODUCT_NAME || '_') || $L_SOURCE_ENTITY_NAME) || '_') || $G_CONTENT_PACK_ID) || '_EXTRACT_DELETE_FF.TXT')" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_SOURCE_ENTITY_NAME" />
</CONCAT>
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<CONSTANT value="_EXTRACT_DELETE_FF.TXT" datatype="VARCHAR" size="22" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('This EXT Process will read any file named ' || $L_DYNAMIC_FILE_NAME_EXTD))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="This EXT Process will read any file named " datatype="VARCHAR" size="42" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME_EXTD" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('The File is located in the ' || $L_DYNAMIC_FILE_LOCATION) || ' directory.'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="The File is located in the " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</CONCAT>
<CONSTANT value=" directory." datatype="VARCHAR" size="11" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
<DIIfStep typeId="2" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="If_condition" value="$L_LATEST_WF_STATUS&lt;&gt;'SUCCESS' or $L_LATEST_WF_STATUS is null"/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_DELETE_CONDITION"/>
</DIUIOptions>
<DIExpression isString="true" expr="(($L_LATEST_WF_STATUS != 'SUCCESS') OR&#xA;   ($L_LATEST_WF_STATUS IS  NULL ))" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DICallStep typeId="1"  calledObjectType="Dataflow" name="SA_SERVER_FF_EXT_DELETE_DF" >
<DIUIOptions>
<DIAttribute name="ParmDefaulted_01" value="FALSE"/>
<DIAttribute name="ParmDefaulted_02" value="FALSE"/>
</DIUIOptions>
<DIParameterValues>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_LOCATION" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</DIExpression>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_NAME_EXTD" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME_EXTD" />
</DIExpression>
</DIParameterValues>
</DICallStep>
</DIIf>
<DIElse>
<DIScript>
<DIUIOptions>
<DIAttribute name="ui_display_name" value="SA_SERVER_EXIT_SCRIPT"/>
<DIAttribute name="ui_script_text" value="ETL_PRINT( 'PREVIOS RUN OF WORKFLOW &gt;&gt;  FOR BATCH ID &gt;&gt; {$G_BATCH_ID } HAS FINISHED SUCCESSFULLY!');"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('PREVIOS RUN OF WORKFLOW &gt;&gt;  FOR BATCH ID &gt;&gt; {$G_BATCH_ID } HAS FINISHED SUCCESSFULLY!')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="PREVIOS RUN OF WORKFLOW &gt;&gt;  FOR BATCH ID &gt;&gt; {$G_BATCH_ID } HAS FINISHED SUCCESSFULLY!" datatype="VARCHAR" size="85" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DIElse>
</DIIfStep>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This script that calls the custom function that closes the metadata records that are part of tracking the workflow process."/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_DELETE_END_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK END OF WORKFLOW&#xD;&#xA;ABC_ENDWF_FN($L_WF_NAME, $G_PROCESS_ID);"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_endwf_fn($L_WF_NAME, $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_endwf_fn"  type="DI" >
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
<DICatch typeId="20" errorCode="210101" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The workflow catch object is the end of the TRY/CATCH block in BO DS.  This catch block contains the script object that calls a custom fail workflow function used to write the metadata for failed jobs."/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_DELETE_CATCH"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that is used to write the metadata for failed workflows."/>
<DIAttribute name="ui_display_name" value="SA_SERVER_FF_EXT_DELETE_FAIL_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK FAIL OF WORKFLOW&#xA;ABC_FAILWF_FN(workflow_name(), $G_PROCESS_ID, 'Error: \[' || error_number() || '\] ' || error_message());"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_failwf_fn(workflow_name(), $G_PROCESS_ID, ((('Error: \\[' || error_number()) || '\\] ') || error_message()))" >
<FUNCTION_CALL name="abc_failwf_fn"  type="DI" >
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="Error: \[" datatype="VARCHAR" size="9" />
<FUNCTION_CALL name="error_number"  type="DI" />
</CONCAT>
<CONSTANT value="\] " datatype="VARCHAR" size="3" />
</CONCAT>
<FUNCTION_CALL name="error_message"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
</DICatch>
</DITryStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIDataflow name="SA_SERVER_FF_EXT_DELETE_DF" typeId="1" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Description" value="The dataflow loads the flat file of all business keys from the source and compares them to the TSNP to determine and mark if a record will be a deletion. The source flat file only contains the business keys."/>
</DIProperties>
<DIParameters>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_NAME_EXTD" datatype="VARCHAR" size="100" >
</DIElement>
</DIParameters>
<DITransforms>
<DITransformCall typeId="111" name="Table_Comparison" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This transform compares the source against the existing TSNP table. It compares the sorted input, using the BUSINESS KEY as both the input primary key and the compare column"/>
<DIAttribute name="ui_display_name" value="TC_SA_SERVER_TSNP"/>
</DIUIOptions>
<DIInputView name="QRY_SORT"  />
<DISchema name="SA_SERVER_TSNP" >
</DISchema>
<DIAttributes>
<DIAttribute name="cache_comparison_table" value="no"/>
<DIAttribute name="compare_column1" value="MD_BUSINESS_KEY"/>
<DIAttribute name="database_datastore" value="SRCSTAGING_DS"/>
<DIAttribute name="detect_all_dup_deletes" value="no"/>
<DIAttribute name="detect_delete" value="yes"/>
<DIAttribute name="primary_key_column1" value="MD_BUSINESS_KEY"/>
<DIAttribute name="primary_key_column2" value="MD_CP_ID"/>
<DIAttribute name="run_as_separate_process" value="no"/>
<DIAttribute name="source_is_sorted" value="yes"/>
<DIAttribute name="table_name" value="SA_SERVER_TSNP"/>
<DIAttribute name="table_owner" value="SRCSTAGING_ALIAS"/>
<DIAttribute name="update_cache" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This transform maps resulting records not in the TSNP table as a record to be deleted. The record would just be marked as a logical delete."/>
<DIAttribute name="ui_display_name" value="MO_DELETE_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_SERVER_TSNP"  />
<DISchema name="MO_DELETE_TO_NORMAL" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="normal"/>
<DIAttribute name="insert" value="discard"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="discard"/>
</DIAttributes>
</DITransformCall>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The QRY_DELETE transform sources the records to be marked as deleted, sets the MD_FLAG as DELETE and MD_PF_FLAG as ‘D’ to identify the record as a delete and non-pre-fill record. MD_BATCH and MD_PROCESS_ID fields are also set with the global values"/>
<DIAttribute name="ui_acta_from_schema_0" value="MO_DELETE_TO_NORMAL"/>
<DIAttribute name="ui_display_name" value="QRY_DELETE"/>
<DIAttribute name="ui_where_text" value="MO_DELETE_TO_NORMAL.MD_CP_ID=$G_CONTENT_PACK_ID"/>
</DIUIOptions>
<DISchema name="QRY_DELETE" >
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="DISCOVEREDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.DISCOVEREDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="MANUFACTURE" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.MANUFACTURE"/>
</DIAttributes>
</DIElement>
<DIElement name="MEMORYQUANTITY" datatype="DECIMAL" precision="16" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.MEMORYQUANTITY"/>
</DIAttributes>
</DIElement>
<DIElement name="MODEL" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.MODEL"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="NETBIOSNAME" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.NETBIOSNAME"/>
</DIAttributes>
</DIElement>
<DIElement name="OPSLIFECYCLE" datatype="VARCHAR" size="60" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.OPSLIFECYCLE"/>
</DIAttributes>
</DIElement>
<DIElement name="OSVERSION" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.OSVERSION"/>
</DIAttributes>
</DIElement>
<DIElement name="SERIALNUMBER" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.SERIALNUMBER"/>
</DIAttributes>
</DIElement>
<DIElement name="SERVERID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_DELETE "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.DISCOVEREDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="DISCOVEREDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.MANUFACTURE" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="MANUFACTURE" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.MEMORYQUANTITY" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="MEMORYQUANTITY" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.MODEL" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="MODEL" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.NAME" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.NETBIOSNAME" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="NETBIOSNAME" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.OPSLIFECYCLE" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="OPSLIFECYCLE" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.OSVERSION" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="OSVERSION" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.SERIALNUMBER" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="SERIALNUMBER" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.SERVERID" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_DELETE" >
<VARIABLE_REFERENCE name="$G_FLAG_DELETE" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="MD_CP_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_DELETE_TO_NORMAL" />
</DIFrom>
<DIWhere>
<DIExpression isString="true" expr="(MO_DELETE_TO_NORMAL.MD_CP_ID = $G_CONTENT_PACK_ID)" >
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="MD_CP_ID" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</LOGICAL_OP>
</DIExpression>
</DIWhere>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_SERVER_EXT" >
<DIInputView name="QRY_DELETE"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit/>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>0</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>append</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="SA_SERVER_EXTD"/>
<DIAttribute name="ui_display_name" value="QRY_READ"/>
</DIUIOptions>
<DISchema name="QRY_READ" >
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="SERVERID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID &#xD;&#xA; &#xD;&#xA;"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect isDistinct="true">
<DIProjection>
<DIExpression isString="true" expr="SERVERID" >
<COLUMN_REFERENCE  column="SERVERID" />
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="SA_SERVER_EXTD" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_READ"/>
<DIAttribute name="ui_display_name" value="QRY_SORT"/>
</DIUIOptions>
<DISchema name="QRY_SORT" >
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_READ.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_READ.MD_CP_ID"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_READ.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_READ" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_READ.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_READ" column="MD_CP_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_READ" />
</DIFrom>
<DIOrderBys>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="QRY_READ.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_READ" column="MD_BUSINESS_KEY" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="QRY_READ.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_READ" column="MD_CP_ID" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIFileSource typeId="33" formatName="SA_SERVER_EXTD" filename="$P_DYNAMIC_FILE_NAME_EXTD" >
<DIOutputView name="SA_SERVER_EXTD"  />
<DIAttributes>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="name" value="SA_SERVER_EXTD"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_filename_col" value="DI_FILENAME"/>
<DIAttribute name="reader_filename_col_size" value="100"/>
<DIAttribute name="reader_filename_only" value="no"/>
<DIAttribute name="reader_include_filename" value="no"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$G_SA_FILELOCATION"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="transfer_custom" value="no"/>
</DIAttributes>
</DIFileSource>

</DITransforms>
<DIAttributes>
<DIAttribute name="Audit" hasNestedXMLTree ="true">
<Audit>
          <AuditObjects/>
          <AuditRules/>
          <Notifications>
            <RaiseException Enabled="true"/>
            <Mail Enabled="false"/>
            <Script Enabled="false"/>
          </Notifications>
        </Audit>
</DIAttribute>
<DIAttribute name="Cache_type" value="pageable_cache"/>
<DIAttribute name="Parallelism_degree" value="0"/>
<DIAttribute name="allows_both_input_and_output" value="yes"/>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="use_dataflow_links" value="no"/>
<DIAttribute name="use_datastore_links" value="yes"/>
<DIAttribute name="validation_xform_exists" value="no"/>
<DIAttribute name="validation_xform_stats" value="no"/>
</DIAttributes>
</DIDataflow>
<DIWorkflow name="SA_POLICY_FF_EXT_DELETE_WF" typeId="2" >
<DIProperties>
<DIAttribute name="Description" value="This workflow is responsible for loading the records found in the EXTD flat file extracts, determining if a source record was deleted and pushing that record into the EXT tables to be marked as delete"/>
</DIProperties>
<DIVariables>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_DYNAMIC_FILE_NAME_EXTD" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_MAX_WF_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_WF_NAME" datatype="VARCHAR" size="200" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_LATEST_WF_STATUS" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="LOCAL" name="$L_SOURCE_ENTITY_NAME" datatype="VARCHAR" size="100" >
</DIElement>
</DIVariables>
<DISteps>
<DITryStep typeId="13" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The Try of the Try / Catch Block"/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_DELETE_TRY"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that initiates the metadata tracking for the workflow. The script will also be used to populate the local workflow variables."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_DELETE_START_SC"/>
<DIAttribute name="ui_script_text" value="#WORKFLOW NAME&#xD;&#xA;$L_WF_NAME = workflow_name()||$G_CONTENT_PACK_ID;&#xD;&#xA;&#xD;&#xA;# GET MAX PROCESS_ID OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID&#xD;&#xA;$L_MAX_WF_PROCESS_ID=M_ICPS_GET_MAX_WF_PROCESS_ID($G_BATCH_ID,$L_WF_NAME,job_name( ));&#xD;&#xA;&#xD;&#xA;# GET LAST EXECUTION STATUS OF THIS WORKFLOW IN THE SCOPE OF RUNNING BATCH_ID, ACCORDING TO MAX PROCESS_ID&#xD;&#xA;$L_LATEST_WF_STATUS =M_ICPS_GET_WF_STATUS($L_MAX_WF_PROCESS_ID,$L_WF_NAME );&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;# CALL FUNCTION TO TRACK START OF WORKFLOW&#xD;&#xA;ABC_STARTWF_FN($L_WF_NAME, $G_PROCESS_ID);&#xD;&#xA;&#xD;&#xA;# ASSIGN TABLE NAME VALUE TO BE USED TO LOOKUP THE VALIDATION_STATUS ON THE VALIDATION REFERENCE TABLE AS NECESSARY&#xD;&#xA;$L_ENTITY_NAME ='POLICY';&#xD;&#xA;&#xD;&#xA;# ASSIGN FILE NAME AND FILE LOCATION VALUES&#xD;&#xA;$L_SOURCE_ENTITY_NAME= METADATA_GET_SOURCE_ENTITY_NAME($L_ENTITY_NAME);&#xD;&#xA;&#xD;&#xA;$L_DYNAMIC_FILE_LOCATION = $G_SA_FILELOCATION ;&#xD;&#xA;$L_DYNAMIC_FILE_NAME_EXTD = $G_PRODUCT_NAME||'_'||$L_SOURCE_ENTITY_NAME||'_'||$G_CONTENT_PACK_ID||'_EXTRACT_DELETE_FF.TXT';&#xD;&#xA;&#xD;&#xA;# PRINT PARAMETERS USED BASED ON TRACE MODE&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;ETL_PRINT('This EXT Process will read any file named '||$L_DYNAMIC_FILE_NAME_EXTD); &#xD;&#xA;ETL_PRINT('The File is located in the '||$L_DYNAMIC_FILE_LOCATION||' directory.' );&#xD;&#xA;ETL_PRINT(' ');&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
</DIUIOptions>
<DIAssignmentStep typeId="12" variable="$L_WF_NAME" >
<DIExpression isString="true" expr="(workflow_name() || $G_CONTENT_PACK_ID)" >
<CONCAT>
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_MAX_WF_PROCESS_ID" >
<DIExpression isString="true" expr="m_icps_get_max_wf_process_id($G_BATCH_ID, $L_WF_NAME, job_name())" >
<FUNCTION_CALL name="m_icps_get_max_wf_process_id"  type="DI" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<FUNCTION_CALL name="job_name"  type="DI" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_LATEST_WF_STATUS" >
<DIExpression isString="true" expr="m_icps_get_wf_status($L_MAX_WF_PROCESS_ID, $L_WF_NAME)" >
<FUNCTION_CALL name="m_icps_get_wf_status"  type="DI" >
<VARIABLE_REFERENCE name="$L_MAX_WF_PROCESS_ID" />
<VARIABLE_REFERENCE name="$L_WF_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_startwf_fn($L_WF_NAME, $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_startwf_fn"  type="DI" >
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIAssignmentStep typeId="12" variable="$L_ENTITY_NAME" >
<DIExpression isString="true" expr="'POLICY'" >
<CONSTANT value="POLICY" datatype="VARCHAR" size="6" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_SOURCE_ENTITY_NAME" >
<DIExpression isString="true" expr="metadata_get_source_entity_name($L_ENTITY_NAME)" >
<FUNCTION_CALL name="metadata_get_source_entity_name"  type="DI" >
<VARIABLE_REFERENCE name="$L_ENTITY_NAME" />
</FUNCTION_CALL>
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_LOCATION" >
<DIExpression isString="true" expr="$G_SA_FILELOCATION" >
<VARIABLE_REFERENCE name="$G_SA_FILELOCATION" />
</DIExpression>
</DIAssignmentStep>
<DIAssignmentStep typeId="12" variable="$L_DYNAMIC_FILE_NAME_EXTD" >
<DIExpression isString="true" expr="((((($G_PRODUCT_NAME || '_') || $L_SOURCE_ENTITY_NAME) || '_') || $G_CONTENT_PACK_ID) || '_EXTRACT_DELETE_FF.TXT')" >
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<CONCAT>
<VARIABLE_REFERENCE name="$G_PRODUCT_NAME" />
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$L_SOURCE_ENTITY_NAME" />
</CONCAT>
<CONSTANT value="_" datatype="VARCHAR" size="1" />
</CONCAT>
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</CONCAT>
<CONSTANT value="_EXTRACT_DELETE_FF.TXT" datatype="VARCHAR" size="22" />
</CONCAT>
</DIExpression>
</DIAssignmentStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(('This EXT Process will read any file named ' || $L_DYNAMIC_FILE_NAME_EXTD))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONSTANT value="This EXT Process will read any file named " datatype="VARCHAR" size="42" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME_EXTD" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print((('The File is located in the ' || $L_DYNAMIC_FILE_LOCATION) || ' directory.'))" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONCAT>
<CONCAT>
<CONSTANT value="The File is located in the " datatype="VARCHAR" size="27" />
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</CONCAT>
<CONSTANT value=" directory." datatype="VARCHAR" size="11" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print(' ')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value=" " datatype="VARCHAR" size="1" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
<DIIfStep typeId="2" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="If_condition" value="$L_LATEST_WF_STATUS&lt;&gt;'SUCCESS' or $L_LATEST_WF_STATUS is null"/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_DELETE_CONDITION"/>
</DIUIOptions>
<DIExpression isString="true" expr="(($L_LATEST_WF_STATUS != 'SUCCESS') OR&#xA;   ($L_LATEST_WF_STATUS IS  NULL ))" >
<LOGICAL_OP op="OR">
<LOGICAL_OP op="NE">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
<CONSTANT value="SUCCESS" datatype="VARCHAR" size="7" />
</LOGICAL_OP>
<LOGICAL_OP op="IS NULL">
<VARIABLE_REFERENCE name="$L_LATEST_WF_STATUS" />
</LOGICAL_OP>
</LOGICAL_OP>
</DIExpression>
<DIIf>
<DICallStep typeId="1"  calledObjectType="Dataflow" name="SA_POLICY_FF_EXT_DELETE_DF" >
<DIUIOptions>
<DIAttribute name="ParmDefaulted_01" value="FALSE"/>
<DIAttribute name="ParmDefaulted_02" value="FALSE"/>
</DIUIOptions>
<DIParameterValues>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_LOCATION" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_LOCATION" />
</DIExpression>
<DIExpression isString="true" expr="$L_DYNAMIC_FILE_NAME_EXTD" >
<VARIABLE_REFERENCE name="$L_DYNAMIC_FILE_NAME_EXTD" />
</DIExpression>
</DIParameterValues>
</DICallStep>
</DIIf>
<DIElse>
<DIScript>
<DIUIOptions>
<DIAttribute name="ui_display_name" value="SA_POLICY_EXIT_SCRIPT"/>
<DIAttribute name="ui_script_text" value="ETL_PRINT( 'PREVIOS RUN OF WORKFLOW &gt;&gt;  FOR BATCH ID &gt;&gt; {$G_BATCH_ID } HAS FINISHED SUCCESSFULLY!');"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="etl_print('PREVIOS RUN OF WORKFLOW &gt;&gt;  FOR BATCH ID &gt;&gt; {$G_BATCH_ID } HAS FINISHED SUCCESSFULLY!')" >
<FUNCTION_CALL name="etl_print"  type="DI" >
<CONSTANT value="PREVIOS RUN OF WORKFLOW &gt;&gt;  FOR BATCH ID &gt;&gt; {$G_BATCH_ID } HAS FINISHED SUCCESSFULLY!" datatype="VARCHAR" size="85" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DIElse>
</DIIfStep>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This script that calls the custom function that closes the metadata records that are part of tracking the workflow process."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_DELETE_END_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK END OF WORKFLOW&#xD;&#xA;ABC_ENDWF_FN($L_WF_NAME, $G_PROCESS_ID);"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_endwf_fn($L_WF_NAME, $G_PROCESS_ID)" >
<FUNCTION_CALL name="abc_endwf_fn"  type="DI" >
<VARIABLE_REFERENCE name="$L_WF_NAME" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
<DICatch typeId="20" errorCode="210101" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
<DIAttribute name="ObjectDesc" value="The workflow catch object is the end of the TRY/CATCH block in BO DS.  This catch block contains the script object that calls a custom fail workflow function used to write the metadata for failed jobs."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_DELETE_CATCH"/>
</DIUIOptions>
<DISteps>
<DIScript>
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The script that calls the custom function that is used to write the metadata for failed workflows."/>
<DIAttribute name="ui_display_name" value="SA_POLICY_FF_EXT_DELETE_FAIL_SC"/>
<DIAttribute name="ui_script_text" value="# CALL FUNCTION TO TRACK FAIL OF WORKFLOW&#xA;ABC_FAILWF_FN(workflow_name(), $G_PROCESS_ID, 'Error: \[' || error_number() || '\] ' || error_message());"/>
</DIUIOptions>
<DIFunctionCallStep typeId="23" >
<DIExpression isString="true" expr="abc_failwf_fn(workflow_name(), $G_PROCESS_ID, ((('Error: \\[' || error_number()) || '\\] ') || error_message()))" >
<FUNCTION_CALL name="abc_failwf_fn"  type="DI" >
<FUNCTION_CALL name="workflow_name"  type="DI" />
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
<CONCAT>
<CONCAT>
<CONCAT>
<CONSTANT value="Error: \[" datatype="VARCHAR" size="9" />
<FUNCTION_CALL name="error_number"  type="DI" />
</CONCAT>
<CONSTANT value="\] " datatype="VARCHAR" size="3" />
</CONCAT>
<FUNCTION_CALL name="error_message"  type="DI" />
</CONCAT>
</FUNCTION_CALL>
</DIExpression>
</DIFunctionCallStep>
</DIScript>
</DISteps>
</DICatch>
</DITryStep>
</DISteps>
<DIAttributes>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="unit_of_recovery" value="no"/>
</DIAttributes>
</DIWorkflow>
<DIDataflow name="SA_POLICY_FF_EXT_DELETE_DF" typeId="1" >
<DIUIOptions>
<DIAttribute name="AutoLayout" value="yes"/>
</DIUIOptions>
<DIProperties>
<DIAttribute name="Description" value="The dataflow loads the flat file of all business keys from the source and compares them to the TSNP to determine and mark if a record will be a deletion. The source flat file only contains the business keys."/>
</DIProperties>
<DIParameters>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_LOCATION" datatype="VARCHAR" size="100" >
</DIElement>
<DIElement paramType="IN" name="$P_DYNAMIC_FILE_NAME_EXTD" datatype="VARCHAR" size="100" >
</DIElement>
</DIParameters>
<DITransforms>
<DITransformCall typeId="111" name="Table_Comparison" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This transform compares the source against the existing TSNP table. It compares the sorted input, using the BUSINESS KEY as both the input primary key and the compare column"/>
<DIAttribute name="ui_display_name" value="TC_SA_POLICY_TSNP"/>
</DIUIOptions>
<DIInputView name="QRY_SORT"  />
<DISchema name="SA_POLICY_TSNP" >
</DISchema>
<DIAttributes>
<DIAttribute name="cache_comparison_table" value="no"/>
<DIAttribute name="compare_column1" value="MD_BUSINESS_KEY"/>
<DIAttribute name="database_datastore" value="SRCSTAGING_DS"/>
<DIAttribute name="detect_all_dup_deletes" value="no"/>
<DIAttribute name="detect_delete" value="yes"/>
<DIAttribute name="primary_key_column1" value="MD_BUSINESS_KEY"/>
<DIAttribute name="primary_key_column2" value="MD_CP_ID"/>
<DIAttribute name="run_as_separate_process" value="no"/>
<DIAttribute name="source_is_sorted" value="yes"/>
<DIAttribute name="table_name" value="SA_POLICY_TSNP"/>
<DIAttribute name="table_owner" value="SRCSTAGING_ALIAS"/>
<DIAttribute name="update_cache" value="no"/>
</DIAttributes>
</DITransformCall>
<DITransformCall typeId="111" name="Map_Operation" >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="This transform maps resulting records not in the TSNP table as a record to be deleted. The record would just be marked as a logical delete."/>
<DIAttribute name="ui_display_name" value="MO_DELETE_TO_NORMAL"/>
</DIUIOptions>
<DIInputView name="SA_POLICY_TSNP"  />
<DISchema name="MO_DELETE_TO_NORMAL" >
</DISchema>
<DIAttributes>
<DIAttribute name="delete" value="normal"/>
<DIAttribute name="insert" value="discard"/>
<DIAttribute name="normal" value="discard"/>
<DIAttribute name="update" value="discard"/>
</DIAttributes>
</DITransformCall>
<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ObjectDesc" value="The QRY_DELETE transform sources the records to be marked as deleted, sets the MD_FLAG as DELETE and MD_PF_FLAG as ‘D’ to identify the record as a delete and non-pre-fill record. MD_BATCH and MD_PROCESS_ID fields are also set with the global values"/>
<DIAttribute name="ui_acta_from_schema_0" value="MO_DELETE_TO_NORMAL"/>
<DIAttribute name="ui_display_name" value="QRY_DELETE"/>
<DIAttribute name="ui_where_text" value="MO_DELETE_TO_NORMAL.MD_CP_ID=$G_CONTENT_PACK_ID"/>
</DIUIOptions>
<DISchema name="QRY_DELETE" >
<DIElement name="CATEGORY" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.CATEGORY"/>
</DIAttributes>
</DIElement>
<DIElement name="CREATEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.CREATEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="DESCRIPTION" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.DESCRIPTION"/>
</DIAttributes>
</DIElement>
<DIElement name="MODIFIEDDATE" datatype="DATETIME" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.MODIFIEDDATE"/>
</DIAttributes>
</DIElement>
<DIElement name="NAME" datatype="VARCHAR" size="1024" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.NAME"/>
</DIAttributes>
</DIElement>
<DIElement name="POLICYID" datatype="VARCHAR" size="255" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.POLICYID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BATCH_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_BATCH_ID "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_FLAG" datatype="VARCHAR" size="10" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_FLAG_DELETE "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PF_FLAG" datatype="VARCHAR" size="1" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_MD_NON_PREFILL_FLAG "/>
</DIAttributes>
</DIElement>
<DIElement name="MD_PROCESS_ID" datatype="DECIMAL" precision="19" scale="0" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_PROCESS_ID"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="DECIMAL" precision="10" scale="0" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="MO_DELETE_TO_NORMAL.MD_CP_ID"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.CATEGORY" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="CATEGORY" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.CREATEDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="CREATEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.DESCRIPTION" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="DESCRIPTION" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.MODIFIEDDATE" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="MODIFIEDDATE" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.NAME" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="NAME" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.POLICYID" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="POLICYID" />
</DIExpression>
<DIExpression isString="true" expr="$G_BATCH_ID" >
<VARIABLE_REFERENCE name="$G_BATCH_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="$G_FLAG_DELETE" >
<VARIABLE_REFERENCE name="$G_FLAG_DELETE" />
</DIExpression>
<DIExpression isString="true" expr="$G_MD_NON_PREFILL_FLAG" >
<VARIABLE_REFERENCE name="$G_MD_NON_PREFILL_FLAG" />
</DIExpression>
<DIExpression isString="true" expr="$G_PROCESS_ID" >
<VARIABLE_REFERENCE name="$G_PROCESS_ID" />
</DIExpression>
<DIExpression isString="true" expr="MO_DELETE_TO_NORMAL.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="MD_CP_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="MO_DELETE_TO_NORMAL" />
</DIFrom>
<DIWhere>
<DIExpression isString="true" expr="(MO_DELETE_TO_NORMAL.MD_CP_ID = $G_CONTENT_PACK_ID)" >
<LOGICAL_OP op="EQ">
<COLUMN_REFERENCE  qualifier1="MO_DELETE_TO_NORMAL" column="MD_CP_ID" />
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</LOGICAL_OP>
</DIExpression>
</DIWhere>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIDatabaseTableTarget typeID="11" bulkLoader="false" datastoreName="SRCSTAGING_DS" ownerName="SRCSTAGING_ALIAS" tableName="SA_POLICY_EXT" >
<DIInputView name="QRY_DELETE"  />
<DIAttributes>
<DIAttribute name="LDRLiveLoad" value="no"/>
<DIAttribute name="Table_Type" value="TABLE"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="ldr_configuration_enabled" value="yes"/>
<DIAttribute name="ldr_configurations" hasNestedXMLTree ="true">
<LDRConfigurations>
              <LDRConfiguration database_type="Microsoft_SQL_Server" database_version="Microsoft SQL Server 2005">
                <auto_correct_using_merge>Yes</auto_correct_using_merge>
                <bulk_ldr_all_rows/>
                <bulk_ldr_max_errors/>
                <bulk_ldr_rows_per_commit/>
                <enable_partitioning>no</enable_partitioning>
                <ignore_column_case>yes</ignore_column_case>
                <ignore_columns_null>no</ignore_columns_null>
                <ignore_columns_value/>
                <loader_auto_correct>yes</loader_auto_correct>
                <loader_bulk_load>0</loader_bulk_load>
                <loader_compare_column>compare_by_name</loader_compare_column>
                <loader_delete_map/>
                <loader_drop_and_create_table>no</loader_drop_and_create_table>
                <loader_insert_map/>
                <loader_load_choice>append</loader_load_choice>
                <loader_num_parallel_loaders>1</loader_num_parallel_loaders>
                <loader_overflow_file>overflow_file</loader_overflow_file>
                <loader_post_load1/>
                <loader_pre_load1/>
                <loader_quote_names>0</loader_quote_names>
                <loader_transactional>no</loader_transactional>
                <loader_transactional_order>0</loader_transactional_order>
                <loader_update_key_columns>no</loader_update_key_columns>
                <loader_update_map/>
                <loader_use_user_defined_keys>no</loader_use_user_defined_keys>
                <loader_xact_size>1000</loader_xact_size>
                <mssql_bulk_ldr_mode>append</mssql_bulk_ldr_mode>
                <mssql_bulk_ldr_packet_size>4</mssql_bulk_ldr_packet_size>
                <overflow_file_format>Write data</overflow_file_format>
                <overriding_substitution_parameter_for_tablename/>
                <use_overflow_file>no</use_overflow_file>
                <use_unicode_varchar>no</use_unicode_varchar>
                <sql_text/>
              </LDRConfiguration>
            </LDRConfigurations>
</DIAttribute>
<DIAttribute name="loader_template_table" value="no"/>
<DIAttribute name="name" value="SRCSTAGING_DS"/>
<DIAttribute name="use_unicode_varchar" value="no"/>
</DIAttributes>
</DIDatabaseTableTarget>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="SA_POLICY_EXTD"/>
<DIAttribute name="ui_display_name" value="QRY_READ"/>
</DIUIOptions>
<DISchema name="QRY_READ" >
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="POLICYID||':'||CATEGORY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="$G_CONTENT_PACK_ID &#xD;&#xA; &#xD;&#xA;"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect isDistinct="true">
<DIProjection>
<DIExpression isString="true" expr="((POLICYID || ':') || CATEGORY)" >
<CONCAT>
<CONCAT>
<COLUMN_REFERENCE  column="POLICYID" />
<CONSTANT value=":" datatype="VARCHAR" size="1" />
</CONCAT>
<COLUMN_REFERENCE  column="CATEGORY" />
</CONCAT>
</DIExpression>
<DIExpression isString="true" expr="$G_CONTENT_PACK_ID" >
<VARIABLE_REFERENCE name="$G_CONTENT_PACK_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="SA_POLICY_EXTD" />
</DIFrom>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIQuery typeId="122"  >
<DIUIOptions>
<DIAttribute name="ui_acta_from_schema_0" value="QRY_READ"/>
<DIAttribute name="ui_display_name" value="QRY_SORT"/>
</DIUIOptions>
<DISchema name="QRY_SORT" >
<DIElement name="MD_BUSINESS_KEY" datatype="VARCHAR" size="100" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_READ.MD_BUSINESS_KEY"/>
</DIAttributes>
</DIElement>
<DIElement name="MD_CP_ID" datatype="INT" key="true" >
<DIAttributes>
<DIAttribute name="Description" value=""/>
<DIAttribute name="ui_mapping_text" value="QRY_READ.MD_CP_ID"/>
</DIAttributes>
</DIElement>
</DISchema>
<DISelect>
<DIProjection>
<DIExpression isString="true" expr="QRY_READ.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_READ" column="MD_BUSINESS_KEY" />
</DIExpression>
<DIExpression isString="true" expr="QRY_READ.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_READ" column="MD_CP_ID" />
</DIExpression>
</DIProjection>
<DIFrom>
<DITableSpec name="QRY_READ" />
</DIFrom>
<DIOrderBys>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="QRY_READ.MD_BUSINESS_KEY" >
<COLUMN_REFERENCE  qualifier1="QRY_READ" column="MD_BUSINESS_KEY" />
</DIExpression>
</DIOrderBy>
<DIOrderBy direction="ASC">
<DIExpression isString="true" expr="QRY_READ.MD_CP_ID" >
<COLUMN_REFERENCE  qualifier1="QRY_READ" column="MD_CP_ID" />
</DIExpression>
</DIOrderBy>
</DIOrderBys>
</DISelect>
<DIAttributes>
<DIAttribute name="distinct_run_as_separate_process" value="no"/>
<DIAttribute name="group_by_run_as_separate_process" value="no"/>
<DIAttribute name="join_run_as_separate_process" value="no"/>
<DIAttribute name="order_by_run_as_separate_process" value="no"/>
<DIAttribute name="run_as_separate_process" value="no"/>
</DIAttributes>
</DIQuery>

<DIFileSource typeId="33" formatName="SA_POLICY_EXTD" filename="$P_DYNAMIC_FILE_NAME_EXTD" >
<DIOutputView name="SA_POLICY_EXTD"  />
<DIAttributes>
<DIAttribute name="cache" value="yes"/>
<DIAttribute name="connection_port" value="no"/>
<DIAttribute name="file_location" value="local"/>
<DIAttribute name="name" value="SA_POLICY_EXTD"/>
<DIAttribute name="reader_capture_data_conversion_errors" value="no"/>
<DIAttribute name="reader_capture_row_format_errors" value="yes"/>
<DIAttribute name="reader_filename_col" value="DI_FILENAME"/>
<DIAttribute name="reader_filename_col_size" value="100"/>
<DIAttribute name="reader_filename_only" value="no"/>
<DIAttribute name="reader_include_filename" value="no"/>
<DIAttribute name="reader_log_data_conversion_warnings" value="yes"/>
<DIAttribute name="reader_log_row_format_warnings" value="yes"/>
<DIAttribute name="reader_maximum_warnings_to_log" value="-99"/>
<DIAttribute name="reader_write_error_rows_to_file" value="no"/>
<DIAttribute name="root_dir" value="$G_SA_FILELOCATION"/>
<DIAttribute name="table_weight" value="0"/>
<DIAttribute name="transfer_custom" value="no"/>
</DIAttributes>
</DIFileSource>

</DITransforms>
<DIAttributes>
<DIAttribute name="Audit" hasNestedXMLTree ="true">
<Audit>
          <AuditObjects/>
          <AuditRules/>
          <Notifications>
            <RaiseException Enabled="true"/>
            <Mail Enabled="false"/>
            <Script Enabled="false"/>
          </Notifications>
        </Audit>
</DIAttribute>
<DIAttribute name="Cache_type" value="pageable_cache"/>
<DIAttribute name="Parallelism_degree" value="0"/>
<DIAttribute name="allows_both_input_and_output" value="yes"/>
<DIAttribute name="run_once" value="no"/>
<DIAttribute name="use_dataflow_links" value="no"/>
<DIAttribute name="use_datastore_links" value="yes"/>
<DIAttribute name="validation_xform_exists" value="no"/>
<DIAttribute name="validation_xform_stats" value="no"/>
</DIAttributes>
</DIDataflow>

</DataIntegratorExport>

